1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// { dg-do run } // GROUPS passed templates extern "C" int printf (const char *, ...); template <class F> class Temp { F func_; public: Temp (F f) :func_(f) {} }; int func (int h = 1, int z = 2) { return h+z; } int main () { Temp<int(*)(int, int)> temp (func); printf ("PASS\n"); return 0; }