1// { dg-do compile } 2// Origin: <sebor at roguewave dot com> 3// c++/8266: Explicit instantiation of a template outside its namespace is 4// broken 5 6namespace N 7{ 8 template <class T> T foo (T) 9 { return T (); } 10 11 struct A 12 { 13 template <int N> 14 struct B {}; 15 }; 16 17 template <int M> 18 struct C {}; 19 20 template double foo(double); 21 template float foo<float>(float); 22 template struct A::B<0>; 23 template struct C<0>; 24} 25 26template int N::foo(int); 27template char N::foo<char>(char); 28template struct N::A::B<1>; 29template struct N::C<1>; 30 31 32