struct B { B(); // This type is non-literal void func(); }; template void match(); template void match(); void func() { match(); }