Define wxMEMBER_DEFAULT similarly to the existing wxOVERRIDE

Also define wxHAS_MEMBER_DEFAULT allowing to check if '= default' is supported
(compilers that define c++11 and VS2015 and later).
This commit is contained in:
Maarten Bent
2020-04-07 19:03:36 +02:00
parent 89185875a9
commit 52ef7157e7
4 changed files with 16 additions and 5 deletions

View File

@@ -38,9 +38,9 @@ public:
wxAnimation();
explicit wxAnimation(const wxString &name, wxAnimationType type = wxANIMATION_TYPE_ANY);
#if __cplusplus >= 201103
wxAnimation(const wxAnimation&) = default;
wxAnimation& operator=(const wxAnimation&) = default;
#ifdef wxHAS_MEMBER_DEFAULT
wxAnimation(const wxAnimation&) wxMEMBER_DEFAULT;
wxAnimation& operator=(const wxAnimation&) wxMEMBER_DEFAULT;
#endif
bool IsOk() const;

View File

@@ -285,6 +285,14 @@ typedef short int WXTYPE;
#define wxOVERRIDE
#endif /* HAVE_OVERRIDE */
/* same for defaulted member function keyword */
#if __cplusplus >= 201103L || wxCHECK_VISUALC_VERSION(14)
#define wxHAS_MEMBER_DEFAULT
#define wxMEMBER_DEFAULT = default
#else
#define wxMEMBER_DEFAULT
#endif
/*
Support for nullptr is available since MSVS 2010, even though it doesn't
define __cplusplus as a C++11 compiler.

View File

@@ -267,8 +267,8 @@ public:
wxUniCharRef& operator=(const wxUniCharRef& c)
{ if (&c != this) *this = c.UniChar(); return *this; }
#if __cplusplus >= 201103
wxUniCharRef(const wxUniCharRef&) = default;
#ifdef wxHAS_MEMBER_DEFAULT
wxUniCharRef(const wxUniCharRef&) wxMEMBER_DEFAULT;
#endif
#define wxUNICHAR_REF_DEFINE_OPERATOR_EQUAL(type) \