#include <iostream>
struct foo
{
template <typename T>
void bar();
};
template <typename T>
void foo::bar()
{
std::cout << "bar<T>()\n";
}
template <>
void foo::bar<int>()
{
std::cout << "bar<int>()\n";
}
int main()
{
foo f;
f.bar<int>();
f.bar<double>();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IGZvbwp7Cgl0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KCXZvaWQgYmFyKCk7Cn07Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBmb286OmJhcigpCnsKCXN0ZDo6Y291dCA8PCAiYmFyPFQ+KClcbiI7Cn0KCnRlbXBsYXRlIDw+CnZvaWQgZm9vOjpiYXI8aW50PigpCnsKCXN0ZDo6Y291dCA8PCAiYmFyPGludD4oKVxuIjsKfQoKaW50IG1haW4oKQp7Cglmb28gZjsKCWYuYmFyPGludD4oKTsKCWYuYmFyPGRvdWJsZT4oKTsKfQ==