------- Additional Comments From bangerth at dealii dot org 2005-03-04 15:05 ------- Here's another very nice example from PR 20313: ------------------------- template<int j> struct s; template<int i> s<i>::s(int j) {} ------------------------- Note that the definition of the constructor is invalid because the struct isn't complete. Here's what we get: g/x> /home/bangerth/bin/gcc-4.0-pre/bin/c++ -c x.cc x.cc:2: error: invalid use of undefined type ?struct s<j>? x.cc:1: error: declaration of ?struct s<j>? x.cc:2: error: template definition of non-template ?s<j>::s(int)? Note how the compiler uses the template argument 'j', although we use template argument 'i' in line 2! W.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=99