1 // PR c++/81102
2 
3 template <typename FuncSig, FuncSig f>
4 struct HelperWrapper;
5 
6 // [...]
7 
8 template <typename Ret, Ret (&Func)()>
9 struct HelperWrapper<Ret (&)(), Func>
10 {
11     static inline int WrapFuncT(const int)
12     {
13         return 0; // Changed
14     }
15 };
16 
17 // Unary
18 template <typename Ret, typename Arg1, Ret (&Func)(Arg1)>
19 struct HelperWrapper<Ret (&)(Arg1), Func>
20 {
21     static inline int WrapFuncT(const int)
22     {
23         return 1; // Changed
24     }
25 };
26 
27 // Binary
28 template <typename Ret, typename Arg1, typename Arg2, Ret (&Func)(Arg1, Arg2)>
29 struct HelperWrapper<Ret (&)(Arg1, Arg2), Func>
30 {
31     static inline int WrapFuncT(const int)
32     {
33         return 2; // Changed
34     }
35 };
36 
37 int main()
38 {
39   return 0;
40 }
41