15 template void f(int); // { dg-error "duplicate explicit instantiation" }
16 template int S<int>::t;
17 template int S<int>::t; // { dg-error "duplicate explicit instantiation" }
18 template class S<double>;
19 template class S<double>; // { dg-error "duplicate explicit instantiation" }
21 extern template void f(double); // { dg-error "extern" "" { target { ! c++11 } } }
22 inline template class S<float>; // { dg-error "inline" } inline not allowed
27 template class S<void*>; // OK - explicit instantiation of partial
31 struct S<long double> {};
33 template class S<long double>; // OK - explicit instantiation after
36 void f(long double) {}
38 template void f(long double); // OK - explicit instantiation after
43 template void g(int); // { dg-error "no definition available" "no def" }
44 // { dg-message "required" "inst" { target *-*-* } 43 }