2 // Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4 template<typename T> struct A
6 template<T> int foo(); // { dg-error "double" }
7 template<template<T> class> int bar(); // { dg-error "double" }
8 template<T> struct X; // { dg-error "double" }
12 A<double> a2; // { dg-message "instantiated" }
14 template<typename T> struct B
16 template<double> int foo(); // { dg-error "double" }
17 template<template<double> class> int bar(); // { dg-error "double" }
18 template<double> struct X; // { dg-error "double" }
21 template<void> int foo(); // { dg-error "void" }
22 template<template<void> class> int bar(); // { dg-error "void" }
23 template<void> struct X; // { dg-error "void" }
25 template<typename T> struct C
27 template<T> int foo(); // { dg-error "double" }
30 template<typename T> int baz(T) { C<T> c; } // { dg-message "instantiated" }
34 baz(1.2); // { dg-message "instantiated" }