template<> float limit(float arg, float max, float min); template<> double limit(double arg, double max, double min); template T limit(T value, T max, T min) { value = value > max ? max : value; value = value < min ? min : value; return value; } int calc(void); template <> float limit(float value, float max, float min) { value = value > max ? max : value; value = value < min ? min : value; return value; } template <> double limit(double value, double max, double min) { value = value > max ? max : value; value = value < min ? min : value; return value; } int calc(void) { int a = limit(4,1,2); return a; }