g++ doesn't accept this code: template<int N, int I=N> struct K; template<int N> struct K<N, 1> { void f(); }; template<int N, int I> struct K : public K<N, I-1> { using K<N, I-1>::f; typedef const char A[N*I]; void f(const A &) const; }; template<int N> struct Q : public K<N>, public K<N-1> { using K<N>::f; using K<N-1>::f; // error: using declaration ‘using K<4, 4>::f’ conflicts with a previous using declaration }; int main() { Q<5> v; char a5x3[15]; v.f(a5x3); char a4x2[8]; v.f(a4x2); }
*** This bug has been marked as a duplicate of 25994 ***