The following little testcase class Foo { public: void bar() const; static const double TOL = 1e-14; };
void Foo::bar() const { double tol = -TOL; } int main(){} produces the error message [EMAIL PROTECTED]:~/dune_projects/uggridtest$ g++ test.cc /tmp/cco39MFe.o: In function `Foo::bar() const': test.cc:(.text+0x8): undefined reference to `Foo::TOL' collect2: ld returned 1 exit status when compiled with [EMAIL PROTECTED]:~/dune_projects/uggridtest$ g++ --version g++ (GCC) 4.1.2 20060901 (prerelease) (Debian 4.1.1-13) It compiles with 2.95 and 3.3, it does not compile with 3.4. The error message goes away when the minus sign in front of TOL is removed. -- Summary: Undefined reference when using negated static const double Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sander at mi dot fu-berlin dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29483