#endif
#elif defined(__VISAGECPP__) && __IBMCPP__ >= 400
#define wxLongLong_t long long
+#elif defined(__DJGPP__) && __DJGPP__ >= 2
+ #define wxLongLong_t long long
#else // no native long long type
// both warning and pragma warning are not portable, but at least an
// unknown pragma should never be an error - except that, actually, some
#endif
class WXDLLEXPORT wxLongLongWx;
+ class WXDLLEXPORT wxULongLongWx;
#if defined(__VISUALC__) && !defined(__WIN32__)
#define wxLongLong wxLongLongWx
#define wxULongLong wxULongLongWx
public:
// ctors
// default ctor initializes to 0
- wxLongLongNative() { m_ll = 0; }
+ wxLongLongNative() : m_ll(0) { }
// from long long
- wxLongLongNative(wxLongLong_t ll) { m_ll = ll; }
+ wxLongLongNative(wxLongLong_t ll) : m_ll(ll) { }
// from 2 longs
- wxLongLongNative(long hi, unsigned long lo)
+ wxLongLongNative(long hi, unsigned long lo) : m_ll(0)
{
// assign first to avoid precision loss!
m_ll = ((wxLongLong_t) hi) << 32;
{ m_ll++; return *this; }
// post increment
- wxLongLongNative& operator++(int)
- { m_ll++; return *this; }
+ wxLongLongNative operator++(int)
+ { wxLongLongNative value(*this); m_ll++; return value; }
// negation operator
wxLongLongNative operator-() const
{ m_ll--; return *this; }
// post decrement
- wxLongLongNative& operator--(int)
- { m_ll--; return *this; }
+ wxLongLongNative operator--(int)
+ { wxLongLongNative value(*this); m_ll--; return value; }
// shifts
// left shift
public:
// ctors
// default ctor initializes to 0
- wxULongLongNative() { m_ll = 0; }
+ wxULongLongNative() : m_ll(0) { }
// from long long
- wxULongLongNative(unsigned wxLongLong_t ll) { m_ll = ll; }
+ wxULongLongNative(unsigned wxLongLong_t ll) : m_ll(ll) { }
// from 2 longs
- wxULongLongNative(unsigned long hi, unsigned long lo)
+ wxULongLongNative(unsigned long hi, unsigned long lo) : m_ll(0)
{
// assign first to avoid precision loss!
m_ll = ((unsigned wxLongLong_t) hi) << 32;
{ m_ll++; return *this; }
// post increment
- wxULongLongNative& operator++(int)
- { m_ll++; return *this; }
+ wxULongLongNative operator++(int)
+ { wxULongLongNative value(*this); m_ll++; return value; }
// subtraction
wxULongLongNative operator-(const wxULongLongNative& ll) const
{ m_ll--; return *this; }
// post decrement
- wxULongLongNative& operator--(int)
- { m_ll--; return *this; }
+ wxULongLongNative operator--(int)
+ { wxULongLongNative value(*this); m_ll--; return value; }
// shifts
// left shift
private:
// long is at least 32 bits, so represent our 64bit number as 2 longs
- unsigned long m_hi
+ unsigned long m_hi;
unsigned long m_lo;
#ifdef wxLONGLONG_TEST_MODE