X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e38fd1fb0d8c4508383f3d9ce2f3ae0c6d39cfd..0bd63eb6fff074efd83b1eac4dbf34391191af62:/include/wx/longlong.h diff --git a/include/wx/longlong.h b/include/wx/longlong.h index be9a66619e..9b7aff7cae 100644 --- a/include/wx/longlong.h +++ b/include/wx/longlong.h @@ -177,11 +177,6 @@ public: // convert to native long long wxLongLong_t GetValue() const { return m_ll; } - // implicit conversion for times when we want a native type - // or wxLongLong, NOT wxLongLongNative and without having - // to ifdef user code for each use. - operator wxLongLong_t() const { return m_ll; } - // convert to long with range checking in the debug mode (only!) long ToLong() const { @@ -377,16 +372,12 @@ public: // convert to ulong with range checking in the debug mode (only!) unsigned long ToULong() const { - wxASSERT_MSG( (m_ll >= LONG_MIN) && (m_ll <= LONG_MAX), + wxASSERT_MSG( m_ll <= LONG_MAX, _T("wxULongLong to long conversion loss of precision") ); return (unsigned long)m_ll; } - // don't provide implicit conversion to unsigned wxLongLong_t or we - // will have an ambiguity for all arithmetic operations - //operator wxULongLong_t() const { return m_ll; } - // operations // addition wxULongLongNative operator+(const wxULongLongNative& ll) const @@ -786,7 +777,7 @@ public: // convert to long with range checking in the debug mode (only!) unsigned long ToULong() const { - wxASSERT_MSG( (m_hi == 0l), + wxASSERT_MSG( m_hi == 0ul, _T("wxULongLong to long conversion loss of precision") ); return (unsigned long)m_lo; @@ -805,7 +796,7 @@ public: // post increment operator wxULongLongWx& operator++(int) { return ++(*this); } - // subraction + // subraction (FIXME: should return wxLongLong) wxULongLongWx operator-(const wxULongLongWx& ll) const; wxULongLongWx& operator-=(const wxULongLongWx& ll); @@ -903,23 +894,31 @@ private: // ---------------------------------------------------------------------------- inline bool operator<(long l, const wxLongLong& ll) { return ll > l; } -inline bool operator>(long l, const wxLongLong& ll) { return ll > l; } -inline bool operator<=(long l, const wxLongLong& ll) { return ll > l; } -inline bool operator>=(long l, const wxLongLong& ll) { return ll > l; } -inline bool operator==(long l, const wxLongLong& ll) { return ll > l; } -inline bool operator!=(long l, const wxLongLong& ll) { return ll > l; } +inline bool operator>(long l, const wxLongLong& ll) { return ll < l; } +inline bool operator<=(long l, const wxLongLong& ll) { return ll >= l; } +inline bool operator>=(long l, const wxLongLong& ll) { return ll <= l; } +inline bool operator==(long l, const wxLongLong& ll) { return ll == l; } +inline bool operator!=(long l, const wxLongLong& ll) { return ll != l; } inline wxLongLong operator+(long l, const wxLongLong& ll) { return ll + l; } -inline wxLongLong operator-(long l, const wxLongLong& ll) { return ll - l; } +inline wxLongLong operator-(long l, const wxLongLong& ll) +{ + return wxLongLong(l) - ll; +} + +inline bool operator<(unsigned long l, const wxULongLong& ull) { return ull > l; } +inline bool operator>(unsigned long l, const wxULongLong& ull) { return ull < l; } +inline bool operator<=(unsigned long l, const wxULongLong& ull) { return ull >= l; } +inline bool operator>=(unsigned long l, const wxULongLong& ull) { return ull <= l; } +inline bool operator==(unsigned long l, const wxULongLong& ull) { return ull == l; } +inline bool operator!=(unsigned long l, const wxULongLong& ull) { return ull != l; } -inline bool operator<(unsigned long l, const wxULongLong& ll) { return ll > l; } -inline bool operator>(unsigned long l, const wxULongLong& ll) { return ll > l; } -inline bool operator<=(unsigned long l, const wxULongLong& ll) { return ll > l; } -inline bool operator>=(unsigned long l, const wxULongLong& ll) { return ll > l; } -inline bool operator==(unsigned long l, const wxULongLong& ll) { return ll > l; } -inline bool operator!=(unsigned long l, const wxULongLong& ll) { return ll > l; } +inline wxULongLong operator+(unsigned long l, const wxULongLong& ull) { return ull + l; } -inline wxULongLong operator+(unsigned long l, const wxULongLong& ll) { return ll + l; } -inline wxULongLong operator-(unsigned long l, const wxULongLong& ll) { return ll - l; } +// FIXME: this should return wxLongLong +inline wxULongLong operator-(unsigned long l, const wxULongLong& ull) +{ + return wxULongLong(l) - ull; +} #endif // _WX_LONGLONG_H