From 51496782d13dd083fd20f9db31418b9231f2e5c3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?W=C5=82odzimierz=20Skiba?= Date: Mon, 27 Dec 2004 18:57:21 +0000 Subject: [PATCH] wxLongLong to wxString operators. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/longlong.h | 8 ++++++++ src/common/longlong.cpp | 10 ++++++++++ tests/longlong/longlongtest.cpp | 28 ++++++++++++++++------------ 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/include/wx/longlong.h b/include/wx/longlong.h index 07e878184e..1a006e757c 100644 --- a/include/wx/longlong.h +++ b/include/wx/longlong.h @@ -304,6 +304,8 @@ public: friend wxSTD ostream& operator<<(wxSTD ostream&, const wxLongLongNative&); #endif + friend wxString& operator<<(wxString&, const wxLongLongNative&); + private: wxLongLong_t m_ll; }; @@ -487,6 +489,8 @@ public: friend wxSTD ostream& operator<<(wxSTD ostream&, const wxULongLongNative&); #endif + friend wxString& operator<<(wxString&, const wxULongLongNative&); + private: unsigned wxLongLong_t m_ll; }; @@ -679,6 +683,8 @@ public: friend wxSTD ostream& operator<<(wxSTD ostream&, const wxLongLongWx&); #endif // wxUSE_STD_IOSTREAM + friend wxString& operator<<(wxString&, const wxLongLongWx&); + private: // long is at least 32 bits, so represent our 64bit number as 2 longs @@ -861,6 +867,8 @@ public: friend wxSTD ostream& operator<<(wxSTD ostream&, const wxULongLongWx&); #endif // wxUSE_STD_IOSTREAM + friend wxString& operator<<(wxString&, const wxULongLongWx&); + private: // long is at least 32 bits, so represent our 64bit number as 2 longs diff --git a/src/common/longlong.cpp b/src/common/longlong.cpp index 6babb4eef7..63db358fff 100644 --- a/src/common/longlong.cpp +++ b/src/common/longlong.cpp @@ -1162,4 +1162,14 @@ wxSTD ostream& operator<< (wxSTD ostream& o, const wxULongLong& ll) #endif // wxUSE_STD_IOSTREAM +wxString& operator<< (wxString& s, const wxLongLong& ll) +{ + return s << ll.ToString(); +} + +wxString& operator<< (wxString& s, const wxULongLong& ll) +{ + return s << ll.ToString(); +} + #endif // wxUSE_LONGLONG diff --git a/tests/longlong/longlongtest.cpp b/tests/longlong/longlongtest.cpp index f93030996a..5b7920bf87 100644 --- a/tests/longlong/longlongtest.cpp +++ b/tests/longlong/longlongtest.cpp @@ -240,30 +240,30 @@ void LongLongTestCase::BitOperations() for ( size_t n = 0; n < 33; n++ ) { wxLongLong b(a.GetHi(), a.GetLo()), c, d = b, e; - d >>= n; - c = b >> n; + d >>= n; + c = b >> n; CPPUNIT_ASSERT( c == d ); - d <<= n; - e = c << n; + d <<= n; + e = c << n; CPPUNIT_ASSERT( d == e ); #if wxUSE_LONGLONG_WX wxLongLongWx b1(a.GetHi(), a.GetLo()), c1, d1 = b1, e1; - d1 >>= n; - c1 = b1 >> n; + d1 >>= n; + c1 = b1 >> n; CPPUNIT_ASSERT( c1 == d1 ); - d1 <<= n; - e1 = c1 << n; + d1 <<= n; + e1 = c1 << n; CPPUNIT_ASSERT( d1 == e1 ); #endif #if wxUSE_LONGLONG_NATIVE wxLongLongNative b2(a.GetHi(), a.GetLo()), c2, d2 = b2, e2; - d2 >>= n; - c2 = b2 >> n; + d2 >>= n; + c2 = b2 >> n; CPPUNIT_ASSERT( c2 == d2 ); - d2 <<= n; - e2 = c2 << n; + d2 <<= n; + e2 = c2 << n; CPPUNIT_ASSERT( d2 == e2 ); #endif } @@ -281,6 +281,10 @@ void LongLongTestCase::ToString() s2 = a.ToString(); CPPUNIT_ASSERT( s1 == s2 ); + s2 = wxEmptyString; + s2 << a; + CPPUNIT_ASSERT( s1 == s2 ); + #if wxUSE_LONGLONG_WX wxLongLongWx a1 = testLongs[n]; s2 = a1.ToString(); -- 2.50.0