Add wxArrayString ctor from std::vector

Allow constructing wxArrayString from vectors of any compatible type,
including wxString itself as well as std::string or std::wstring.
This commit is contained in:
Vadim Zeitlin 2023-04-08 19:02:55 +01:00
parent ae2e0f41b5
commit cee7611c6a
4 changed files with 53 additions and 0 deletions

View file

@ -79,6 +79,10 @@ public:
wxArrayString(size_t sz, const wxString* a);
template<typename U>
wxArrayString(std::initializer_list<U> list) : wxBaseArray<wxString>(list) { }
wxArrayString(const std::vector<wxString>& vec) : wxBaseArray<wxString>(vec) { }
wxArrayString(std::vector<wxString>&& vec) : wxBaseArray<wxString>(std::move(vec)) { }
template<typename U>
wxArrayString(const std::vector<U>& vec) : wxBaseArray<wxString>(vec.begin(), vec.end()) { }
int Index(const wxString& str, bool bCase = true, bool bFromEnd = false) const;
@ -183,6 +187,9 @@ public:
// list constructor
template<typename U>
wxArrayString(std::initializer_list<U> list) { Init(false); assign(list.begin(), list.end()); }
// ctor from a std::vector
template<typename U>
wxArrayString(const std::vector<U>& vec) { Init(false); assign(vec.begin(), vec.end()); }
// assignment operator
wxArrayString& operator=(const wxArrayString& src);
// not virtual, this class should not be derived from