یک کلاس برای مقادیر پیش فرض بسازید به این شکل :
template<class T>
struct Defaults{};
template<>
struct Defaults<int>{
static constexpr int value1=-50;
static constexpr int value2=50;
};
template<>
struct Defaults<float>{
static constexpr float value1=-0.5;
static constexpr float value2=0.5;
};
//more specialized class...
و هر جا که خواستید ازش استفاده کنید برای نموه کلاس Foo :
template<class T>
class Foo{
public:
Foo(T value1 = Defaults<T>::value1, T value2 = Defaults<T>::value2)
: value1_(value1), value2_(value2){ }
T value1_, value2_;
};
اجرای کد