prog.cpp: In instantiation of ‘void foo() [with int First = 2; int ...Rest = {3}]’:
prog.cpp:13:14: required from ‘void foo() [with int First = 1; int ...Rest = {2, 3}]’
prog.cpp:18:15: required from here
prog.cpp:13:14: error: call of overloaded ‘foo()’ is ambiguous
foo<Rest...>();
~~~~~~~~~~~~^~
prog.cpp:4:6: note: candidate: void foo() [with int Arg = 3]
void foo()
^~~
prog.cpp:10:6: note: candidate: void foo() [with int First = 3; int ...Rest = {}]
void foo()
^~~