#include <iostream>
using namespace std;
template<typename T, typename U>
struct Node
{
void function() { cout << "Non-specialized version" << endl; }
};
template<typename U>
void Node<int, U>::function() { cout << "Specialized version" << endl; }
int main()
{
Node<int, char> a;
Node<int, int > b;
a.function();
b.function();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CnN0cnVjdCBOb2RlCnsKCXZvaWQgZnVuY3Rpb24oKSB7IGNvdXQgPDwgIk5vbi1zcGVjaWFsaXplZCB2ZXJzaW9uIiA8PCBlbmRsOyB9Cn07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBVPgp2b2lkIE5vZGU8aW50LCBVPjo6ZnVuY3Rpb24oKSB7IGNvdXQgPDwgIlNwZWNpYWxpemVkIHZlcnNpb24iIDw8IGVuZGw7IH0KCmludCBtYWluKCkKewoJTm9kZTxpbnQsIGNoYXI+IGE7CglOb2RlPGludCwgaW50ID4gYjsKCWEuZnVuY3Rpb24oKTsKCWIuZnVuY3Rpb24oKTsKCXJldHVybiAwOwp9
prog.cpp:12: error: invalid use of incomplete type ‘struct Node<int, U>’
prog.cpp:7: error: declaration of ‘struct Node<int, U>’