#if wxUSE_LONGLONG
#include "wx/longlong.h"
+#include "wx/math.h" // for fabs()
#if defined(__MWERKS__) && defined(__WXMSW__)
#include <string.h> // for memset()
#include <memory.h> // for memset()
#endif
-#include <math.h> // for fabs()
+#include "wx/ioswrap.h"
// ============================================================================
// implementation
m_hi = m_lo = 0;
#ifdef wxLONGLONG_TEST_MODE
- unsigned wxLongLong_t llOld = m_ll;
+ wxULongLong_t llOld = m_ll;
m_ll = 0;
#endif // wxLONGLONG_TEST_MODE
\
name ll = *this; \
\
- bool neg; \
- if ( ll < 0 ) \
+ bool neg = ll < 0; \
+ if ( neg ) \
{ \
- ll.Negate(); \
- neg = true; \
+ while ( ll != 0 ) \
+ { \
+ long digit = (ll % 10).ToLong(); \
+ result.Prepend((wxChar)(_T('0') - digit)); \
+ ll /= 10; \
+ } \
} \
else \
{ \
- neg = false; \
- } \
- \
- while ( ll != 0 ) \
- { \
- result.Prepend((wxChar)(_T('0') + (ll % 10).ToLong())); \
- ll /= 10; \
+ while ( ll != 0 ) \
+ { \
+ long digit = (ll % 10).ToLong(); \
+ result.Prepend((wxChar)(_T('0') + digit)); \
+ ll /= 10; \
+ } \
} \
\
if ( result.empty() ) \
#if wxUSE_STD_IOSTREAM
// input/output
+WXDLLIMPEXP_BASE
wxSTD ostream& operator<< (wxSTD ostream& o, const wxLongLong& ll)
{
return o << ll.ToString();
}
+WXDLLIMPEXP_BASE
wxSTD ostream& operator<< (wxSTD ostream& o, const wxULongLong& ll)
{
return o << ll.ToString();
#endif // wxUSE_STD_IOSTREAM
+WXDLLIMPEXP_BASE wxString& operator<< (wxString& s, const wxLongLong& ll)
+{
+ return s << ll.ToString();
+}
+
+WXDLLIMPEXP_BASE wxString& operator<< (wxString& s, const wxULongLong& ll)
+{
+ return s << ll.ToString();
+}
+
#endif // wxUSE_LONGLONG