#include <iostream>
#include <vector>
using namespace std;
class test {
public:
template <typename T>
void func(T rhs);
template <typename V>
void func(std::vector<V> rhs);
};
template <typename T>
void test::func(T rhs)
{
std::cout << "Your plain T code goes here" << std::endl;
}
template <typename V>
void test::func(std::vector<V> rhs)
{
std::cout << "Your vector specialized code goes here" << std::endl;
}
int main() {
test a;
std::vector<int> vec;
int x;
a.func(vec);
a.func(x);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKICAgIGNsYXNzIHRlc3QgewogICAgCXB1YmxpYzoKICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICAgdm9pZCBmdW5jKFQgcmhzKTsKCiAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVj4KICAgIHZvaWQgZnVuYyhzdGQ6OnZlY3RvcjxWPiByaHMpOwogICAgfTsKCiAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgIHZvaWQgdGVzdDo6ZnVuYyhUIHJocykKICAgIHsKIAkgICAgc3RkOjpjb3V0IDw8ICJZb3VyIHBsYWluIFQgY29kZSBnb2VzIGhlcmUiIDw8IHN0ZDo6ZW5kbDsKICAgIH0KCiAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVj4KICAgIHZvaWQgdGVzdDo6ZnVuYyhzdGQ6OnZlY3RvcjxWPiByaHMpCiAgICB7CgkgICAgc3RkOjpjb3V0IDw8ICJZb3VyIHZlY3RvciBzcGVjaWFsaXplZCBjb2RlIGdvZXMgaGVyZSIgPDwgc3RkOjplbmRsOwogICAgfQoKaW50IG1haW4oKSB7CgkKCXRlc3QgYTsKICAgIHN0ZDo6dmVjdG9yPGludD4gdmVjOwogICAgaW50IHg7CiAgICBhLmZ1bmModmVjKTsKICAgIGEuZnVuYyh4KTsKICAgIAoJcmV0dXJuIDA7Cn0=