]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/string.h
add operator+=(unsigned char) for backwards compatibility and because we generally...
[wxWidgets.git] / include / wx / string.h
index 0642f2ff376788932292e5804a02dc889ee3189f..425bb74bf1f8805151d2b323058b3565762c1759 100644 (file)
@@ -817,7 +817,7 @@ public:
     wxCStrData operator+(size_t n) const
         { return wxCStrData(m_str, m_offset + n, m_owned); }
 
-    // this operator is need to make expressions like "*c_str()" or
+    // this operator is needed to make expressions like "*c_str()" or
     // "*(c_str() + 2)" work
     wxUniChar operator*() const;
 
@@ -989,6 +989,16 @@ public:
   wxString(const unsigned char* psz, size_t nLength)
       : wxStringBase((const char*)psz, nLength) { }
 
+    // as we provide both ctors with this signature for both char and unsigned
+    // char string, we need to provide one for wxCStrData to resolve ambiguity
+  wxString(const wxCStrData& cstr, size_t nLength)
+      : wxStringBase(cstr.AsChar(), nLength) { }
+
+    // and because wxString is convertible to wxCStrData and const wxChar *
+    // we also need to provide this one
+  wxString(const wxString& str, size_t nLength)
+      : wxStringBase(str, 0, nLength) { }
+
 #if wxUSE_WCHAR_T
     // from wide (Unicode) string
   wxString(const wchar_t *pwz,
@@ -1670,6 +1680,7 @@ public:
     { return (wxString&)wxStringBase::operator+=(ch); }
   wxString& operator+=(wxUniCharRef ch) { return *this += wxUniChar(ch); }
   wxString& operator+=(char ch) { return *this += wxUniChar(ch); }
+  wxString& operator+=(unsigned char ch) { return *this += wxUniChar(ch); }
   wxString& operator+=(wchar_t ch) { return *this += wxUniChar(ch); }
 
 private: