14 #ifndef ECVL_SATURATE_CAST_H_ 15 #define ECVL_SATURATE_CAST_H_ 35 template<DataType ODT,
typename IDT>
40 if (v > std::numeric_limits<basetype>::max()) {
41 return std::numeric_limits<basetype>::max();
43 if (v < std::numeric_limits<basetype>::lowest()) {
44 return std::numeric_limits<basetype>::lowest();
47 return static_cast<basetype>(v);
63 template<
typename ODT,
typename IDT>
66 if (v > std::numeric_limits<ODT>::max()) {
67 return std::numeric_limits<ODT>::max();
69 if (v < std::numeric_limits<ODT>::lowest()) {
70 return std::numeric_limits<ODT>::lowest();
73 return static_cast<ODT>(v);
76 #endif // ECVL_SATURATE_CAST_H_
TypeInfo< ODT >::basetype saturate_cast(IDT v)
Saturate a value (of any type) to the specified type.