#include <iostream>
using namespace std;
class A {
public:
template<typename T, typename... Args>
void stuff(Args... args);
void stuff(int = 0);
};
template<typename T, typename... Args>
void A::stuff(Args... args) {
cout << sizeof...(args) << endl;
}
void A::stuff(int) {
cout << "int" << endl;
}
int main() {
A a;
A b;
a.stuff<char>();
b.stuff(); // remove <int> kind of specialization
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEEgewpwdWJsaWM6CiAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJncz4KICAgICAgICB2b2lkIHN0dWZmKEFyZ3MuLi4gYXJncyk7CiAgICAgICAgdm9pZCBzdHVmZihpbnQgPSAwKTsKfTsKCnRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+CnZvaWQgQTo6c3R1ZmYoQXJncy4uLiBhcmdzKSB7CiAgICAgICAgY291dCA8PCBzaXplb2YuLi4oYXJncykgPDwgZW5kbDsKfQoKdm9pZCBBOjpzdHVmZihpbnQpIHsKICAgICAgICBjb3V0IDw8ICJpbnQiIDw8IGVuZGw7Cn0KCmludCBtYWluKCkgewogICAgICAgIEEgYTsKICAgICAgICBBIGI7CgogICAgICAgIGEuc3R1ZmY8Y2hhcj4oKTsKICAgICAgICBiLnN0dWZmKCk7ICAvLyByZW1vdmUgPGludD4ga2luZCBvZiBzcGVjaWFsaXphdGlvbgp9