inline operator wxString () const { return MakeString(); }
wxString GetString() const;
+#if wxUSE_STD_STRING
+ wxVariant(const std::string& val, const wxString& name = wxEmptyString);
+ bool operator==(const std::string& value) const
+ { return operator==(wxString(value)); }
+ bool operator!=(const std::string& value) const
+ { return operator!=(wxString(value)); }
+ wxVariant& operator=(const std::string& value)
+ { return operator=(wxString(value)); }
+ operator std::string() const { return (operator wxString()).ToStdString(); }
+
+ wxVariant(const wxStdWideString& val, const wxString& name = wxEmptyString);
+ bool operator==(const wxStdWideString& value) const
+ { return operator==(wxString(value)); }
+ bool operator!=(const wxStdWideString& value) const
+ { return operator!=(wxString(value)); }
+ wxVariant& operator=(const wxStdWideString& value)
+ { return operator=(wxString(value)); }
+ operator wxStdWideString() const { return (operator wxString()).ToStdWstring(); }
+#endif // wxUSE_STD_STRING
+
// wxUniChar
wxVariant(const wxUniChar& val, const wxString& name = wxEmptyString);
wxVariant(const wxUniCharRef& val, const wxString& name = wxEmptyString);
virtual bool GetAsAny(wxAny* any) const; \
static wxVariantData* VariantDataFactory(const wxAny& any);
-#define REGISTER_WXANY_CONVERSION(T, CLASSNAME) \
+#define _REGISTER_WXANY_CONVERSION(T, CLASSNAME, FUNC) \
static wxAnyToVariantRegistrationImpl<T> \
gs_##CLASSNAME##AnyToVariantRegistration = \
- wxAnyToVariantRegistrationImpl<T>(&CLASSNAME::VariantDataFactory);
+ wxAnyToVariantRegistrationImpl<T>(&FUNC);
+
+#define REGISTER_WXANY_CONVERSION(T, CLASSNAME) \
+_REGISTER_WXANY_CONVERSION(T, CLASSNAME, CLASSNAME::VariantDataFactory)
#define IMPLEMENT_TRIVIAL_WXANY_CONVERSION(T, CLASSNAME) \
bool CLASSNAME::GetAsAny(wxAny* any) const \