added wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING macro

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36308 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-11-30 16:31:19 +00:00
parent 21e0a4d5f1
commit b47f1f95f3
2 changed files with 44 additions and 0 deletions

View File

@@ -243,6 +243,7 @@ the corresponding topic.
\helpref{wxStringTokenize}{wxstringtokenize}\\
\helpref{wxStripMenuCodes}{wxstripmenucodes}\\
\helpref{wxStrlen}{wxstrlen}\\
\helpref{wxSUPPRESS\_GCC\_PRIVATE\_DTOR\_WARNING}{wxsuppress\_gcc\_private\_dtor\_warning}\\
\helpref{wxSysErrorCode}{wxsyserrorcode}\\
\helpref{wxSysErrorMsg}{wxsyserrormsg}\\
\helpref{wxT}{wxt}\\
@@ -3177,6 +3178,36 @@ as a keyboard shortkey in Windows and Motif) and $\backslash$t (tab in Windows).
<wx/utils.h>
\membersection{wxSUPPRESS\_GCC\_PRIVATE\_DTOR\_WARNING}{wxsuppress\_gcc\_private\_dtor\_warning}\\
\func{}{wxSUPPRESS\_GCC\_PRIVATE\_DTOR\_WARNING}{\param{}{name}}
GNU C++ compiler gives a warning for any class whose destructor is private
unless it has a friend. This warning may sometimes be useful but it doesn't
make sense for reference counted class which always delete themselves (hence
destructor should be private) but don't necessarily have any friends, so this
macro is provided to disable the warning in such case. The \arg{name} parameter
should be the name of the class but is only used to construct a unique friend
class name internally. Example of using the macro:
\begin{verbatim}
class RefCounted
{
public:
RefCounted() { m_nRef = 1; }
void IncRef() { m_nRef++ ; }
void DecRef() { if ( !--m_nRef ) delete this; }
private:
~RefCounted() { }
wxSUPPRESS_GCC_PRIVATE_DTOR(RefCounted)
};
\end{verbatim}
Notice that there should be no semicolon after this macro.
\membersection{wxULL}\label{wxull}
\func{wxLongLong\_t}{wxULL}{\param{}{number}}