bool operator&&(bool v) const { return (bool)*this && v; }
// Assignment operators:
- wxUniChar& operator=(const wxUniChar& c) { m_value = c.m_value; return *this; }
+ wxUniChar& operator=(const wxUniChar& c) { if (&c != this) m_value = c.m_value; return *this; }
wxUniChar& operator=(const wxUniCharRef& c);
wxUniChar& operator=(char c) { m_value = From8bit(c); return *this; }
wxUniChar& operator=(unsigned char c) { m_value = From8bit((char)c); return *this; }
// characters purely for performance reasons
static value_type From8bit(char c)
{
+#if wxUSE_UNICODE
if ( (unsigned char)c < 0x80 )
return c;
return FromHi8bit(c);
+#else
+ return c;
+#endif
}
static char To8bit(value_type c)
{
+#if wxUSE_UNICODE
if ( c < 0x80 )
return c;
return ToHi8bit(c);
+#else
+ return c;
+#endif
}
// helpers of the functions above called to deal with non-ASCII chars
#endif
wxUniCharRef& operator=(const wxUniCharRef& c)
- { return *this = c.UniChar(); }
+ { if (&c != this) *this = c.UniChar(); return *this; }
wxUniCharRef& operator=(char c) { return *this = wxUniChar(c); }
wxUniCharRef& operator=(unsigned char c) { return *this = wxUniChar(c); }