blob: fac092e6cbff644ff24e686bc65659554cd70e43 [file] [log] [blame]
// { dg-do compile }
// Origin: <sebor at roguewave dot com>
// c++/8266: Explicit instantiation of a template outside its namespace is
// broken
namespace N
{
template <class T> T foo (T)
{ return T (); }
struct A
{
template <int N>
struct B {};
};
template <int M>
struct C {};
template double foo(double);
template float foo<float>(float);
template struct A::B<0>;
template struct C<0>;
}
template int N::foo(int);
template char N::foo<char>(char);
template struct N::A::B<1>;
template struct N::C<1>;