X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a52475807e0521097764e5fe4cc738d80f13baad..34d2ab14c1aba03a83cfddd43659cc49cbc0d2eb:/include/wx/utils.h diff --git a/include/wx/utils.h b/include/wx/utils.h index 96d1a9acd1..6f7cb56dde 100644 --- a/include/wx/utils.h +++ b/include/wx/utils.h @@ -63,21 +63,35 @@ template inline typename wxImplicitConversionType::value wxMax(T1 a, T2 b) { - return (a > b) ? a : b; + typedef typename wxImplicitConversionType::value ResultType; + + // Cast both operands to the same type before comparing them to avoid + // warnings about signed/unsigned comparisons from some compilers: + return static_cast(a) > static_cast(b) ? a : b; } template inline typename wxImplicitConversionType::value wxMin(T1 a, T2 b) { - return (a < b) ? a : b; + typedef typename wxImplicitConversionType::value ResultType; + + return static_cast(a) < static_cast(b) ? a : b; } template inline typename wxImplicitConversionType3::value wxClip(T1 a, T2 b, T3 c) { - return (a < b) ? b : ((a > c) ? c : a); + typedef typename wxImplicitConversionType3::value ResultType; + + if ( static_cast(a) < static_cast(b) ) + return b; + + if ( static_cast(a) > static_cast(c) ) + return c; + + return a; } // ----------------------------------------------------------------------------