#include <iostream>
template <class T>
class MyTemplateClass
{
public:
MyTemplateClass(T t) : m_member(t) {}
void DoSomething() { DoSomethingWithMember(); }
void DoSomethingWithMember();
protected:
T m_member;
};
template <>
void MyTemplateClass<float>::DoSomethingWithMember()
{
std::cout << "Member is " << m_member;
}
int main()
{
MyTemplateClass<float> c(4.2f);
c.DoSomething();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPGNsYXNzIFQ+CmNsYXNzIE15VGVtcGxhdGVDbGFzcwp7CnB1YmxpYzoKICAgIE15VGVtcGxhdGVDbGFzcyhUIHQpIDogbV9tZW1iZXIodCkge30KCiAgICB2b2lkIERvU29tZXRoaW5nKCkgeyBEb1NvbWV0aGluZ1dpdGhNZW1iZXIoKTsgfQoKICAgIHZvaWQgRG9Tb21ldGhpbmdXaXRoTWVtYmVyKCk7Cgpwcm90ZWN0ZWQ6CiAgICBUIG1fbWVtYmVyOwoKfTsKCnRlbXBsYXRlIDw+CnZvaWQgTXlUZW1wbGF0ZUNsYXNzPGZsb2F0Pjo6RG9Tb21ldGhpbmdXaXRoTWVtYmVyKCkKewogICAgc3RkOjpjb3V0IDw8ICJNZW1iZXIgaXMgIiA8PCBtX21lbWJlcjsKfQoKCmludCBtYWluKCkKewogICAgTXlUZW1wbGF0ZUNsYXNzPGZsb2F0PiBjKDQuMmYpOwogICAgCiAgICBjLkRvU29tZXRoaW5nKCk7Cn0=