#include <iostream>
using namespace std;
template<typename T>
struct MyStruct {
T val;
MyStruct(T v) : val(v) {}
void show() { cout << "General: " << val << endl; }
};
template<>
struct MyStruct<int> {
int val;
MyStruct(int v) : val(v * 2) {}
void show() { cout << "Specialized int: " << val << endl; }
};
int main() {
MyStruct<double> d(3.14);
MyStruct<int> i(5);
d.show();
i.show();
return 0;
}