diff --git a/misc.h b/misc.h index 084d22bd..8a450c3f 100644 --- a/misc.h +++ b/misc.h @@ -381,8 +381,14 @@ inline bool SafeConvert(T1 from, T2 &to) // Fall through for T1 is unsigned } - if(from > static_cast(std::numeric_limits::max())) + // Handle unsigned greater + if(!std::numeric_limits::is_signed && from > static_cast(std::numeric_limits::max())) { return false; + } + // Handle signed less + else if(from < static_cast(std::numeric_limits::min())) { + return false; + } return true; }