------- Comment #1 from bangerth at dealii dot org 2007-03-09 05:01 ------- Confirmed, though I believe this is a duplicate of some other PR. This is not a regression.
Somewhat smaller: -------------- template<int i> class C {}; template<class T> class X { static const unsigned int Value = 2; static const C<Value> m_X; }; template<class T> const C<X<T>::Value> X<T>::m_X; -------------------- g/x> c++ -c x.cc x.cc:11: error: conflicting declaration 'const C<X<T>::Value> X<T>::m_X' x.cc:7: error: 'X<T>::m_X' has a previous declaration as 'const C<2> X<T>::m_X' x.cc:11: error: declaration of 'const C<2> X<T>::m_X' outside of class is not definition The last error happens because the last line of code is indeed not a definition. To avoid it, one would need to specify an initializer. W. -- bangerth at dealii dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bangerth at dealii dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |rejects-valid Last reconfirmed|0000-00-00 00:00:00 |2007-03-09 05:01:26 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31044