Use C++11 member-delete in NO_COPY_CLASS/NO_ASSIGN_CLASS macros
This commit is contained in:
parent
05e0fad687
commit
764c01832d
@ -2994,24 +2994,30 @@ typedef const void* WXWidget;
|
||||
/* macros to define a class without copy ctor nor assignment operator */
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
#if defined(__cplusplus) && __cplusplus >= 201103L
|
||||
#define wxMEMBER_DELETE = delete
|
||||
#else
|
||||
#define wxMEMBER_DELETE
|
||||
#endif
|
||||
|
||||
#define wxDECLARE_NO_COPY_CLASS(classname) \
|
||||
private: \
|
||||
classname(const classname&); \
|
||||
classname& operator=(const classname&)
|
||||
classname(const classname&) wxMEMBER_DELETE; \
|
||||
classname& operator=(const classname&) wxMEMBER_DELETE
|
||||
|
||||
#define wxDECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg) \
|
||||
private: \
|
||||
classname(const classname<arg>&); \
|
||||
classname& operator=(const classname<arg>&)
|
||||
classname(const classname<arg>&) wxMEMBER_DELETE; \
|
||||
classname& operator=(const classname<arg>&) wxMEMBER_DELETE
|
||||
|
||||
#define wxDECLARE_NO_COPY_TEMPLATE_CLASS_2(classname, arg1, arg2) \
|
||||
private: \
|
||||
classname(const classname<arg1, arg2>&); \
|
||||
classname& operator=(const classname<arg1, arg2>&)
|
||||
classname(const classname<arg1, arg2>&) wxMEMBER_DELETE; \
|
||||
classname& operator=(const classname<arg1, arg2>&) wxMEMBER_DELETE
|
||||
|
||||
#define wxDECLARE_NO_ASSIGN_CLASS(classname) \
|
||||
private: \
|
||||
classname& operator=(const classname&)
|
||||
classname& operator=(const classname&) wxMEMBER_DELETE
|
||||
|
||||
/* deprecated variants _not_ requiring a semicolon after them */
|
||||
#define DECLARE_NO_COPY_CLASS(classname) \
|
||||
|
Loading…
Reference in New Issue
Block a user