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 sander@haile:~/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 sander@haile:~/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.
This is not a bug, you still need to have a memory location for Foo::TOL for this to be valid code.
Reopen ...
to mark as dup of PR25220 *** This bug has been marked as a duplicate of 25220 ***