[Bug c++/14891] New: Problems with the initialization of static members of template classes

gabriele dot greco at darts dot it gcc-bugzilla@gcc.gnu.org
Thu Apr 8 16:33:00 GMT 2004


gcc version 3.4.0 20040331 (prerelease)

Here is the test code, works with gcc 3.3.x or lower:

#include <iostream>

template <typename T>
class A
{
    static int val;
public:
    typedef A<T> B;
    int get() {return val;}
};

class Z: public A<int>
{
public:
    void foo() { std::cout << "hello: " << get() << std::endl; }
};

int Z::B::val = 666; // ERROR on GCC 3.4
    
int main()
{
    Z z;
    z.foo();
}

-- 
           Summary: Problems with the initialization of static members of
                    template classes
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: gabriele dot greco at darts dot it
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14891



More information about the Gcc-bugs mailing list