The instantiation from this code: ```cpp template<typename T> void foo(T, ...) {} int main(){ foo(1, 2.); } ``` Looks like this: ```cpp template<> void foo<int>(int) { } ``` I think the signature should rather be `void foo<int>(int, ...)`. Try it on [CppInsights.io](https://cppinsights.io/lnk?code=dGVtcGxhdGU8dHlwZW5hbWUgVD4Kdm9pZCBmb28oVCwgLi4uKSB7fQoKaW50IG1haW4oKXsKICAgZm9vKDEsIDIuKTsKfQ==&std=cpp17&rev=1.0)