]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/longlong.h
don't pass NULL pointer to printf(), this crashes Solaris printf
[wxWidgets.git] / include / wx / longlong.h
index d41c02ad1a2e50a342c93bf3634631ff13d8ea46..e8c399960b5c0971434c43d2af7c4f27cb40756a 100644 (file)
@@ -164,6 +164,11 @@ public:
         return (long)m_ll;
     }
 
+#if wxABI_VERSION >= 20602
+        // convert to double
+    double ToDouble() const { return m_ll; }
+#endif // ABI >= 2.6.2
+
     // don't provide implicit conversion to wxLongLong_t or we will have an
     // ambiguity for all arithmetic operations
     //operator wxLongLong_t() const { return m_ll; }
@@ -215,13 +220,13 @@ public:
     // shifts
         // left shift
     wxLongLongNative operator<<(int shift) const
-        { return wxLongLongNative(m_ll << shift);; }
+        { return wxLongLongNative(m_ll << shift); }
     wxLongLongNative& operator<<=(int shift)
         { m_ll <<= shift; return *this; }
 
         // right shift
     wxLongLongNative operator>>(int shift) const
-        { return wxLongLongNative(m_ll >> shift);; }
+        { return wxLongLongNative(m_ll >> shift); }
     wxLongLongNative& operator>>=(int shift)
         { m_ll >>= shift; return *this; }
 
@@ -301,10 +306,12 @@ public:
 
 #if wxUSE_STD_IOSTREAM
         // input/output
-    friend wxSTD ostream& operator<<(wxSTD ostream&, const wxLongLongNative&);
+    friend WXDLLIMPEXP_BASE
+    wxSTD ostream& operator<<(wxSTD ostream&, const wxLongLongNative&);
 #endif
 
-    friend wxString& operator<<(wxString&, const wxLongLongNative&);
+    friend WXDLLIMPEXP_BASE
+    wxString& operator<<(wxString&, const wxLongLongNative&);
 
 private:
     wxLongLong_t  m_ll;
@@ -318,13 +325,13 @@ public:
         // default ctor initializes to 0
     wxULongLongNative() : m_ll(0) { }
         // from long long
-    wxULongLongNative(unsigned wxLongLong_t ll) : m_ll(ll) { }
+    wxULongLongNative(wxULongLong_t ll) : m_ll(ll) { }
         // from 2 longs
     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 |= (unsigned wxLongLong_t) lo;
+        m_ll = ((wxULongLong_t) hi) << 32;
+        m_ll |= (wxULongLong_t) lo;
     }
 
     // default copy ctor is ok
@@ -333,7 +340,7 @@ public:
 
     // assignment operators
         // from native 64 bit integer
-    wxULongLongNative& operator=(unsigned wxLongLong_t ll)
+    wxULongLongNative& operator=(wxULongLong_t ll)
         { m_ll = ll; return *this; }
 
     // assignment operators from wxULongLongNative is ok
@@ -347,7 +354,7 @@ public:
         { return (unsigned long)m_ll; }
 
         // convert to native ulong long
-    unsigned wxLongLong_t GetValue() const { return m_ll; }
+    wxULongLong_t GetValue() const { return m_ll; }
 
         // convert to ulong with range checking in the debug mode (only!)
     unsigned long ToULong() const
@@ -365,9 +372,9 @@ public:
     wxULongLongNative& operator+=(const wxULongLongNative& ll)
         { m_ll += ll.m_ll; return *this; }
 
-    wxULongLongNative operator+(const unsigned wxLongLong_t ll) const
+    wxULongLongNative operator+(const wxULongLong_t ll) const
         { return wxULongLongNative(m_ll + ll); }
-    wxULongLongNative& operator+=(const unsigned wxLongLong_t ll)
+    wxULongLongNative& operator+=(const wxULongLong_t ll)
         { m_ll += ll; return *this; }
 
         // pre increment
@@ -384,9 +391,9 @@ public:
     wxULongLongNative& operator-=(const wxULongLongNative& ll)
         { m_ll -= ll.m_ll; return *this; }
 
-    wxULongLongNative operator-(const unsigned wxLongLong_t ll) const
+    wxULongLongNative operator-(const wxULongLong_t ll) const
         { return wxULongLongNative(m_ll - ll); }
-    wxULongLongNative& operator-=(const unsigned wxLongLong_t ll)
+    wxULongLongNative& operator-=(const wxULongLong_t ll)
         { m_ll -= ll; return *this; }
 
         // pre decrement
@@ -400,13 +407,13 @@ public:
     // shifts
         // left shift
     wxULongLongNative operator<<(int shift) const
-        { return wxULongLongNative(m_ll << shift);; }
+        { return wxULongLongNative(m_ll << shift); }
     wxULongLongNative& operator<<=(int shift)
         { m_ll <<= shift; return *this; }
 
         // right shift
     wxULongLongNative operator>>(int shift) const
-        { return wxULongLongNative(m_ll >> shift);; }
+        { return wxULongLongNative(m_ll >> shift); }
     wxULongLongNative& operator>>=(int shift)
         { m_ll >>= shift; return *this; }
 
@@ -494,7 +501,7 @@ public:
     wxString& operator<<(wxString&, const wxULongLongNative&);
 
 private:
-    unsigned wxLongLong_t  m_ll;
+    wxULongLong_t  m_ll;
 };
 
 #endif // wxUSE_LONGLONG_NATIVE
@@ -588,6 +595,11 @@ public:
         return (long)m_lo;
     }
 
+#if wxABI_VERSION >= 20602
+        // convert to double
+    double ToDouble() const;
+#endif // ABI >= 2.6.2
+
     // operations
         // addition
     wxLongLongWx operator+(const wxLongLongWx& ll) const;
@@ -682,10 +694,12 @@ public:
     void *asArray() const;
 
 #if wxUSE_STD_IOSTREAM
-    friend wxSTD ostream& operator<<(wxSTD ostream&, const wxLongLongWx&);
+    friend WXDLLIMPEXP_BASE
+    wxSTD ostream& operator<<(wxSTD ostream&, const wxLongLongWx&);
 #endif // wxUSE_STD_IOSTREAM
 
-    friend wxString& operator<<(wxString&, const wxLongLongWx&);
+    friend WXDLLIMPEXP_BASE
+    wxString& operator<<(wxString&, const wxLongLongWx&);
 
 private:
     // long is at least 32 bits, so represent our 64bit number as 2 longs
@@ -794,7 +808,7 @@ public:
         // post increment operator
     wxULongLongWx& operator++(int) { return ++(*this); }
 
-        // substraction
+        // subtraction
     wxLongLongWx operator-(const wxULongLongWx& ll) const;
     wxULongLongWx& operator-=(const wxULongLongWx& ll);
 
@@ -866,10 +880,12 @@ public:
     void *asArray() const;
 
 #if wxUSE_STD_IOSTREAM
-    friend wxSTD ostream& operator<<(wxSTD ostream&, const wxULongLongWx&);
+    friend WXDLLIMPEXP_BASE
+    wxSTD ostream& operator<<(wxSTD ostream&, const wxULongLongWx&);
 #endif // wxUSE_STD_IOSTREAM
 
-    friend wxString& operator<<(wxString&, const wxULongLongWx&);
+    friend WXDLLIMPEXP_BASE
+    wxString& operator<<(wxString&, const wxULongLongWx&);
 
 private:
     // long is at least 32 bits, so represent our 64bit number as 2 longs
@@ -883,7 +899,7 @@ private:
         wxASSERT( (m_ll >> 32) == m_hi && (unsigned long)m_ll == m_lo );
     }
 
-    unsigned wxLongLong_t m_ll;
+    wxULongLong_t m_ll;
 #endif // wxLONGLONG_TEST_MODE
 };