Avoid -Wdeprecated-copy for many event classes from clang 13

Add new macros wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY() and
wxDECLARE_NO_ASSIGN_DEF_COPY() and use them instead of
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN() and wxDECLARE_NO_ASSIGN_CLASS()
respectively to ensure that we declare a (default, if possible) copy
ctor in the classes declaring an assignment operator to avoid clang
warnings about not doing it.
This commit is contained in:
Vadim Zeitlin
2021-12-15 02:13:43 +01:00
parent e2d13c2d94
commit 6f8bc1018b
27 changed files with 77 additions and 43 deletions

View File

@@ -134,7 +134,7 @@ private:
const wxString * const m_str; const wxString * const m_str;
const wxString::const_iterator m_iter; const wxString::const_iterator m_iter;
wxDECLARE_NO_ASSIGN_CLASS(wxAnyStrPtr); wxDECLARE_NO_ASSIGN_DEF_COPY(wxAnyStrPtr);
}; };
#endif // _WX_ANYSTR_H_ #endif // _WX_ANYSTR_H_

View File

@@ -183,7 +183,7 @@ public:
private: private:
wxColour m_colour; wxColour m_colour;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxColourPickerEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxColourPickerEvent);
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -176,7 +176,7 @@ public:
private: private:
const wxCmdLineParser& m_parser; const wxCmdLineParser& m_parser;
wxDECLARE_NO_ASSIGN_CLASS(wxCmdLineArgs); wxDECLARE_NO_ASSIGN_DEF_COPY(wxCmdLineArgs);
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -92,7 +92,7 @@ public:
private: private:
bool m_bCollapsed; bool m_bCollapsed;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxCollapsiblePaneEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxCollapsiblePaneEvent);
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -65,7 +65,7 @@ public:
private: private:
wxColour m_colour; wxColour m_colour;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxColourDialogEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxColourDialogEvent);
}; };
wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COLOUR_CHANGED, wxColourDialogEvent); wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COLOUR_CHANGED, wxColourDialogEvent);

View File

@@ -39,7 +39,7 @@ public:
private: private:
wxDateTime m_date; wxDateTime m_date;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDateEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxDateEvent);
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -3160,8 +3160,14 @@ typedef const void* WXWidget;
#if defined(__cplusplus) && (__cplusplus >= 201103L || wxCHECK_VISUALC_VERSION(14)) #if defined(__cplusplus) && (__cplusplus >= 201103L || wxCHECK_VISUALC_VERSION(14))
#define wxMEMBER_DELETE = delete #define wxMEMBER_DELETE = delete
#define wxDECLARE_DEFAULT_COPY_CTOR(classname) \
public: \
classname(const classname&) = default;
#else #else
#define wxMEMBER_DELETE #define wxMEMBER_DELETE
// We can't do this without C++11 "= default".
#define wxDECLARE_DEFAULT_COPY_CTOR(classname)
#endif #endif
#define wxDECLARE_NO_COPY_CLASS(classname) \ #define wxDECLARE_NO_COPY_CLASS(classname) \
@@ -3183,6 +3189,11 @@ typedef const void* WXWidget;
private: \ private: \
classname& operator=(const classname&) wxMEMBER_DELETE classname& operator=(const classname&) wxMEMBER_DELETE
#define wxDECLARE_NO_ASSIGN_DEF_COPY(classname) \
wxDECLARE_DEFAULT_COPY_CTOR(classname) \
private: \
classname& operator=(const classname&) wxMEMBER_DELETE
/* deprecated variants _not_ requiring a semicolon after them */ /* deprecated variants _not_ requiring a semicolon after them */
#define DECLARE_NO_COPY_CLASS(classname) \ #define DECLARE_NO_COPY_CLASS(classname) \
wxDECLARE_NO_COPY_CLASS(classname); wxDECLARE_NO_COPY_CLASS(classname);

View File

@@ -397,7 +397,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxWindowModalDialogEvent (*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxWindowModalDialogEvent (*this); }
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxWindowModalDialogEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxWindowModalDialogEvent);
}; };
wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_WINDOW_MODAL_DIALOG_CLOSED , wxWindowModalDialogEvent ); wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_WINDOW_MODAL_DIALOG_CLOSED , wxWindowModalDialogEvent );

View File

@@ -179,7 +179,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxDialUpEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxDialUpEvent(*this); }
private: private:
wxDECLARE_NO_ASSIGN_CLASS(wxDialUpEvent); wxDECLARE_NO_ASSIGN_DEF_COPY(wxDialUpEvent);
}; };
// the type of dialup event handler function // the type of dialup event handler function

View File

@@ -1276,7 +1276,7 @@ protected:
int m_commandInt; int m_commandInt;
long m_extraLong; // Additional information (e.g. select/deselect) long m_extraLong; // Additional information (e.g. select/deselect)
wxDECLARE_NO_ASSIGN_CLASS(wxEventBasicPayloadMixin); wxDECLARE_NO_ASSIGN_DEF_COPY(wxEventBasicPayloadMixin);
}; };
class WXDLLIMPEXP_BASE wxEventAnyPayloadMixin : public wxEventBasicPayloadMixin class WXDLLIMPEXP_BASE wxEventAnyPayloadMixin : public wxEventBasicPayloadMixin
@@ -1720,7 +1720,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxScrollEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxScrollEvent(*this); }
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxScrollEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxScrollEvent);
}; };
// ScrollWin event class, derived fom wxEvent. wxScrollWinEvents // ScrollWin event class, derived fom wxEvent. wxScrollWinEvents
@@ -2428,7 +2428,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxPaintEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxPaintEvent(*this); }
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxPaintEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxPaintEvent);
}; };
class WXDLLIMPEXP_CORE wxNcPaintEvent : public wxEvent class WXDLLIMPEXP_CORE wxNcPaintEvent : public wxEvent
@@ -2444,7 +2444,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxNcPaintEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxNcPaintEvent(*this); }
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxNcPaintEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxNcPaintEvent);
}; };
// Erase background event class // Erase background event class
@@ -2520,7 +2520,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxChildFocusEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxChildFocusEvent(*this); }
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxChildFocusEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxChildFocusEvent);
}; };
// Activate event class // Activate event class
@@ -2583,7 +2583,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxInitDialogEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxInitDialogEvent(*this); }
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxInitDialogEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxInitDialogEvent);
}; };
// Miscellaneous menu event class // Miscellaneous menu event class
@@ -2751,7 +2751,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxMaximizeEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxMaximizeEvent(*this); }
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxMaximizeEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxMaximizeEvent);
}; };
/* /*
@@ -3052,7 +3052,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxSysColourChangedEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxSysColourChangedEvent(*this); }
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSysColourChangedEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxSysColourChangedEvent);
}; };
/* /*
@@ -3112,15 +3112,15 @@ public:
*/ */
class WXDLLIMPEXP_CORE wxDisplayChangedEvent : public wxEvent class WXDLLIMPEXP_CORE wxDisplayChangedEvent : public wxEvent
{ {
private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDisplayChangedEvent);
public: public:
wxDisplayChangedEvent() wxDisplayChangedEvent()
: wxEvent(0, wxEVT_DISPLAY_CHANGED) : wxEvent(0, wxEVT_DISPLAY_CHANGED)
{ } { }
virtual wxEvent *Clone() const wxOVERRIDE { return new wxDisplayChangedEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxDisplayChangedEvent(*this); }
private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxDisplayChangedEvent);
}; };
/* /*
@@ -3153,7 +3153,7 @@ private:
wxSize m_oldDPI; wxSize m_oldDPI;
wxSize m_newDPI; wxSize m_newDPI;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDPIChangedEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxDPIChangedEvent);
}; };
/* /*
@@ -3302,7 +3302,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxWindowCreateEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxWindowCreateEvent(*this); }
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxWindowCreateEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxWindowCreateEvent);
}; };
class WXDLLIMPEXP_CORE wxWindowDestroyEvent : public wxCommandEvent class WXDLLIMPEXP_CORE wxWindowDestroyEvent : public wxCommandEvent
@@ -3315,7 +3315,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxWindowDestroyEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxWindowDestroyEvent(*this); }
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxWindowDestroyEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxWindowDestroyEvent);
}; };
// A help event is sent when the user clicks on a window in context-help mode. // A help event is sent when the user clicks on a window in context-help mode.

View File

@@ -115,7 +115,7 @@ protected:
wxString m_directory; wxString m_directory;
wxArrayString m_files; wxArrayString m_files;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFileCtrlEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxFileCtrlEvent);
}; };
typedef void ( wxEvtHandler::*wxFileCtrlEventFunction )( wxFileCtrlEvent& ); typedef void ( wxEvtHandler::*wxFileCtrlEventFunction )( wxFileCtrlEvent& );

View File

@@ -55,7 +55,7 @@ public:
private: private:
wxString m_path; wxString m_path;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFileDirPickerEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxFileDirPickerEvent);
}; };
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FILEPICKER_CHANGED, wxFileDirPickerEvent ); wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FILEPICKER_CHANGED, wxFileDirPickerEvent );

View File

@@ -218,7 +218,7 @@ public:
private: private:
wxFont m_font; wxFont m_font;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFontPickerEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxFontPickerEvent);
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -205,7 +205,7 @@ protected:
wxFileName m_newPath; wxFileName m_newPath;
wxString m_errorMsg; wxString m_errorMsg;
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFileSystemWatcherEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxFileSystemWatcherEvent);
}; };
typedef void (wxEvtHandler::*wxFileSystemWatcherEventFunction) typedef void (wxEvtHandler::*wxFileSystemWatcherEventFunction)

View File

@@ -3244,7 +3244,7 @@ private:
m_selecting = sel; m_selecting = sel;
} }
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxGridEvent);
}; };
class WXDLLIMPEXP_CORE wxGridSizeEvent : public wxNotifyEvent, class WXDLLIMPEXP_CORE wxGridSizeEvent : public wxNotifyEvent,
@@ -3300,7 +3300,7 @@ private:
m_y = y; m_y = y;
} }
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridSizeEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxGridSizeEvent);
}; };
@@ -3365,7 +3365,7 @@ protected:
wxGridCellCoords m_bottomRight; wxGridCellCoords m_bottomRight;
bool m_selecting; bool m_selecting;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridRangeSelectEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxGridRangeSelectEvent);
}; };
@@ -3402,7 +3402,7 @@ private:
int m_col; int m_col;
wxWindow* m_window; wxWindow* m_window;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridEditorCreatedEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxGridEditorCreatedEvent);
}; };

View File

@@ -97,7 +97,7 @@ protected:
wxLayoutAlignment m_alignment; wxLayoutAlignment m_alignment;
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxQueryLayoutInfoEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxQueryLayoutInfoEvent);
}; };
typedef void (wxEvtHandler::*wxQueryLayoutInfoEventFunction)(wxQueryLayoutInfoEvent&); typedef void (wxEvtHandler::*wxQueryLayoutInfoEventFunction)(wxQueryLayoutInfoEvent&);
@@ -137,7 +137,7 @@ protected:
wxRect m_rect; wxRect m_rect;
private: private:
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxCalculateLayoutEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxCalculateLayoutEvent);
}; };
typedef void (wxEvtHandler::*wxCalculateLayoutEventFunction)(wxCalculateLayoutEvent&); typedef void (wxEvtHandler::*wxCalculateLayoutEventFunction)(wxCalculateLayoutEvent&);

View File

@@ -604,7 +604,7 @@ private:
bool m_bLinkWasClicked; bool m_bLinkWasClicked;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxHtmlCellEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxHtmlCellEvent);
}; };
@@ -631,7 +631,7 @@ public:
private: private:
wxHtmlLinkInfo m_linkInfo; wxHtmlLinkInfo m_linkInfo;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxHtmlLinkEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxHtmlLinkEvent);
}; };

View File

@@ -120,7 +120,7 @@ private:
// URL associated with the hyperlink control that the used clicked on. // URL associated with the hyperlink control that the used clicked on.
wxString m_url; wxString m_url;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxHyperlinkEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxHyperlinkEvent);
}; };

View File

@@ -179,7 +179,7 @@ public:
int m_pid, int m_pid,
m_exitcode; m_exitcode;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxProcessEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxProcessEvent);
}; };
typedef void (wxEvtHandler::*wxProcessEventFunction)(wxProcessEvent&); typedef void (wxEvtHandler::*wxProcessEventFunction)(wxProcessEvent&);

View File

@@ -148,6 +148,10 @@ WXDLLIMPEXP_BASE wxObject *wxCreateDynamicObject(const wxString& name);
wxDECLARE_NO_ASSIGN_CLASS(name); \ wxDECLARE_NO_ASSIGN_CLASS(name); \
wxDECLARE_DYNAMIC_CLASS(name) wxDECLARE_DYNAMIC_CLASS(name)
#define wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(name) \
wxDECLARE_NO_ASSIGN_DEF_COPY(name); \
wxDECLARE_DYNAMIC_CLASS(name)
#define wxDECLARE_DYNAMIC_CLASS_NO_COPY(name) \ #define wxDECLARE_DYNAMIC_CLASS_NO_COPY(name) \
wxDECLARE_NO_COPY_CLASS(name); \ wxDECLARE_NO_COPY_CLASS(name); \
wxDECLARE_DYNAMIC_CLASS(name) wxDECLARE_DYNAMIC_CLASS(name)

View File

@@ -427,7 +427,7 @@ public:
wxSocketNotify m_event; wxSocketNotify m_event;
void *m_clientData; void *m_clientData;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSocketEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxSocketEvent);
}; };

View File

@@ -110,7 +110,7 @@ public:
virtual wxEvent *Clone() const wxOVERRIDE { return new wxTaskBarIconEvent(*this); } virtual wxEvent *Clone() const wxOVERRIDE { return new wxTaskBarIconEvent(*this); }
private: private:
wxDECLARE_NO_ASSIGN_CLASS(wxTaskBarIconEvent); wxDECLARE_NO_ASSIGN_DEF_COPY(wxTaskBarIconEvent);
}; };
typedef void (wxEvtHandler::*wxTaskBarIconEventFunction)(wxTaskBarIconEvent&); typedef void (wxEvtHandler::*wxTaskBarIconEventFunction)(wxTaskBarIconEvent&);

View File

@@ -185,7 +185,7 @@ public:
private: private:
wxTimer* m_timer; wxTimer* m_timer;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxTimerEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxTimerEvent);
}; };
typedef void (wxEvtHandler::*wxTimerEventFunction)(wxTimerEvent&); typedef void (wxEvtHandler::*wxTimerEventFunction)(wxTimerEvent&);

View File

@@ -515,7 +515,7 @@ private:
friend class wxTreeListCtrl; friend class wxTreeListCtrl;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxTreeListEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxTreeListEvent);
}; };
// Event types and event table macros. // Event types and event table macros.

View File

@@ -311,7 +311,7 @@ private:
wxWebViewNavigationActionFlags m_actionFlags; wxWebViewNavigationActionFlags m_actionFlags;
wxString m_messageHandler; wxString m_messageHandler;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxWebViewEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxWebViewEvent);
}; };
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEBVIEW, wxEVT_WEBVIEW_NAVIGATING, wxWebViewEvent ); wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEBVIEW, wxEVT_WEBVIEW_NAVIGATING, wxWebViewEvent );

View File

@@ -285,7 +285,7 @@ private:
bool m_direction; bool m_direction;
wxWizardPage* m_page; wxWizardPage* m_page;
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxWizardEvent); wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN_DEF_COPY(wxWizardEvent);
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -1525,10 +1525,29 @@ typedef double wxDouble;
In such case, this macro can be used to disable the automatic assignment In such case, this macro can be used to disable the automatic assignment
operator generation. operator generation.
@see wxDECLARE_NO_COPY_CLASS() @see wxDECLARE_NO_COPY_CLASS(), wxDECLARE_NO_ASSIGN_DEF_COPY()
*/ */
#define wxDECLARE_NO_ASSIGN_CLASS(classname) #define wxDECLARE_NO_ASSIGN_CLASS(classname)
/**
Macro disabling the generation of default assignment operator but
generating a default copy constructor.
This macro can be useful for the classes that can't be copied after
creation, but may be copy-constructed using the default compiler-generated
copy constructor.
Note that using wxDECLARE_NO_ASSIGN_CLASS() for such macros results in @c
-Wdeprecated-copy warning from clang 13, while this macro avoids such
warnings.
Default copy constructor is only generated when using C++11 or later,
otherwise this macro is identical to wxDECLARE_NO_ASSIGN_CLASS().
@since 3.1.6
*/
#define wxDECLARE_NO_ASSIGN_DEF_COPY(classname)
/** /**
This macro can be used in a class declaration to disable the generation of This macro can be used in a class declaration to disable the generation of
default copy ctor and assignment operator. default copy ctor and assignment operator.