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

@@ -171,6 +171,9 @@ Currently the following symbols exist:
wxBitmapToggleButton class is available in addition to wxToggleButton.} wxBitmapToggleButton class is available in addition to wxToggleButton.}
@itemdef{wxHAS_CONFIG_TEMPLATE_RW, Defined if the currently used compiler @itemdef{wxHAS_CONFIG_TEMPLATE_RW, Defined if the currently used compiler
supports template Read() and Write() methods in wxConfig.} supports template Read() and Write() methods in wxConfig.}
@itemdef{wxHAS_MEMBER_DEFAULT, Defined if the currently used compiler supports
C++11 @c =default. @c wxMEMBER_DEFAULT is defined as this keyword in this
case, and as nothing otherwise.}
@itemdef{wxHAS_LARGE_FILES, Defined if wxFile supports files more than 4GB in @itemdef{wxHAS_LARGE_FILES, Defined if wxFile supports files more than 4GB in
size (notice that you must include @c wx/filefn.h before testing for this size (notice that you must include @c wx/filefn.h before testing for this
symbol).} symbol).}

View File

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

View File

@@ -285,6 +285,14 @@ typedef short int WXTYPE;
#define wxOVERRIDE #define wxOVERRIDE
#endif /* HAVE_OVERRIDE */ #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 Support for nullptr is available since MSVS 2010, even though it doesn't
define __cplusplus as a C++11 compiler. define __cplusplus as a C++11 compiler.

View File

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