http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53106
--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2012-04-24 23:13:19 UTC --- Testcase [hjl@gnu-35 delta]$ cat testcase.cc #include <vector> template <int dim> class FiniteElement { public: FiniteElement ( const std::vector<std::vector<bool> > &nonzero_components); }; template <int dim> class FE_RaviartThomas : public FiniteElement<dim> { public: FE_RaviartThomas (const unsigned int p); static std::vector<bool> get_ria_vector (const unsigned int degree); }; template <int dim> FE_RaviartThomas<dim>::FE_RaviartThomas (const unsigned int degree) : FiniteElement<dim> ( std::vector<std::vector<bool> >(1)) { } template <int dim> std::vector<bool> FE_RaviartThomas<dim>::get_ria_vector (const unsigned int degree) { std::vector<bool> ret_val(degree,false); for (unsigned int i = 0 ; i < degree ; ++i) ret_val[i] = true; return ret_val; } template class FE_RaviartThomas<3>; [hjl@gnu-35 delta]$