X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/47561b0dc572e82f9b01b881a12202b1a8542163..d8fd7acb8b877599b410e07a4c26dde92a676a82:/include/wx/string.h diff --git a/include/wx/string.h b/include/wx/string.h index f55ac3032b..844cfa9f81 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -187,6 +187,7 @@ inline int Stricmp(const char *psz1, const char *psz2) // we don't need an extra ctor from std::string when copy ctor already does // the work #undef wxUSE_STD_STRING + #define wxUSE_STD_STRING 0 #if (defined(__GNUG__) && (__GNUG__ < 3)) || \ (defined(_MSC_VER) && (_MSC_VER <= 1200)) @@ -954,6 +955,14 @@ public: // insert an unsigned long into string wxString& operator<<(unsigned long ul) { return (*this) << Format(_T("%lu"), ul); } +#if defined wxLongLong_t && !defined wxLongLongIsLong + // insert a long long if they exist and aren't longs + wxString& operator<<(wxLongLong_t ll) + { return (*this) << Format(_T("%") wxLongLongFmtSpec _T("d"), ll); } + // insert an unsigned long long + wxString& operator<<(wxULongLong_t ull) + { return (*this) << Format(_T("%") wxLongLongFmtSpec _T("u"), ull); } +#endif // insert a float into string wxString& operator<<(float f) { return (*this) << Format(_T("%f"), f); } @@ -1185,7 +1194,7 @@ public: { return (wxString&)wxStringBase::assign(first, last); } // string comparison -#if !defined(HAVE_STD_STRING_COMPARE) +#if !defined(HAVE_STD_STRING_COMPARE) int compare(const wxStringBase& str) const; // comparison with a substring int compare(size_t nStart, size_t nLen, const wxStringBase& str) const; @@ -1274,6 +1283,17 @@ public: { return (wxString&)wxStringBase::operator+=(ch); } }; +// IBM xlC compiler needs these operators to be declared in global scope, +// although this shouldn't be a problem for the other compilers we prefer to +// only do it for it in stable 2.6 branch +#ifdef __IBMCPP__ +wxString WXDLLIMPEXP_BASE operator+(const wxString& string1, const wxString& string2); +wxString WXDLLIMPEXP_BASE operator+(const wxString& string, wxChar ch); +wxString WXDLLIMPEXP_BASE operator+(wxChar ch, const wxString& string); +wxString WXDLLIMPEXP_BASE operator+(const wxString& string, const wxChar *psz); +wxString WXDLLIMPEXP_BASE operator+(const wxChar *psz, const wxString& string); +#endif // __IBMCPP__ + // define wxArrayString, for compatibility #if WXWIN_COMPATIBILITY_2_4 && !wxUSE_STL #include "wx/arrstr.h" @@ -1463,12 +1483,6 @@ inline bool operator!=(const wxCharBuffer& s1, const wxString& s2) { return (s2.Cmp((const char *)s1) != 0); } #endif // wxUSE_UNICODE/!wxUSE_UNICODE -wxString WXDLLIMPEXP_BASE operator+(const wxString& string1, const wxString& string2); -wxString WXDLLIMPEXP_BASE operator+(const wxString& string, wxChar ch); -wxString WXDLLIMPEXP_BASE operator+(wxChar ch, const wxString& string); -wxString WXDLLIMPEXP_BASE operator+(const wxString& string, const wxChar *psz); -wxString WXDLLIMPEXP_BASE operator+(const wxChar *psz, const wxString& string); - #if wxUSE_UNICODE inline wxString operator+(const wxString& string, const wxWCharBuffer& buf) { return string + (const wchar_t *)buf; }