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

Reply via email to