add operator+=(unsigned char) for backwards compatibility and because we generally handle both signed and unisnged chars everywhere; added wxString(const wxCStrData&, size_t) ctor to resolve ambiguity between wxString(const char *, size_t) and wxString(const unsigned char *, size_t) and wxString(const wxString&, size_t) to resolved embiguity for string parameter of ctor

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-03-22 17:26:09 +00:00
parent bd72306dc8
commit b77afb41f3

View 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: