const wxString& second);
// constructors and destructor
- // default ctor: if autoSort is TRUE, the array is always sorted (in
- // alphabetical order)
- wxArrayString(bool autoSort = FALSE);
+ // default ctor
+ wxArrayString() { Init(FALSE); }
+ // if autoSort is TRUE, the array is always sorted (in alphabetical order)
+ //
+ // NB: the reason for using int and not bool is that like this we can avoid
+ // using this ctor for implicit conversions from "const char *" (which
+ // we'd like to be implicitly converted to wxString instead!)
+ //
+ // of course, using explicit would be even better - if all compilers
+ // supported it...
+ wxArrayString(int autoSort) { Init(autoSort != 0); }
// copy ctor
wxArrayString(const wxArrayString& array);
// assignment operator
bool operator!=(const wxArrayString& a) const { return !(*this == a); }
protected:
+ void Init(bool autoSort); // common part of all ctors
void Copy(const wxArrayString& src); // copies the contents of another array
private:
#define STRING(p) ((wxString *)(&(p)))
// ctor
-wxArrayString::wxArrayString(bool autoSort)
+void wxArrayString::Init(bool autoSort)
{
m_nSize =
m_nCount = 0;
// copy ctor
wxArrayString::wxArrayString(const wxArrayString& src)
{
- m_nSize =
- m_nCount = 0;
- m_pItems = (wxChar **) NULL;
- m_autoSort = src.m_autoSort;
+ Init(src.m_autoSort);
*this = src;
}