prog.cpp: In function ‘int main()’:
prog.cpp:23:14: error: no match for call to ‘(func<bool, long int, long int>) (long int&, long int&)’
f( p.x, p.y );
^
prog.cpp:14:4: note: candidate: template<class R, class ... P> R func<RetType, Params>::operator()(P&& ...) [with R = R; P = {P ...}; RetType = bool; Params = {long int, long int}]
R operator()( P&&... p )
^~~~~~~~
prog.cpp:14:4: note: template argument deduction/substitution failed:
prog.cpp:23:14: note: couldn't deduce template parameter ‘R’
f( p.x, p.y );
^