// Purpose: wxCHECKED_DELETE() macro
// Author: Vadim Zeitlin
// Created: 2009-02-03
-// RCS-ID: $Id$
// Copyright: (c) 2002-2009 wxWidgets dev team
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_CHECKEDDELETE_H_
#define _WX_CHECKEDDELETE_H_
+#include "wx/cpp.h"
+
// TODO: provide wxCheckedDelete[Array]() template functions too
// ----------------------------------------------------------------------------
still force a semicolon after the macro
*/
-#ifdef __WATCOMC__
- #define wxFOR_ONCE(name) for(int name=0; name<1; name++)
- #define wxPRE_NO_WARNING_SCOPE(name) wxFOR_ONCE(wxMAKE_UNIQUE_NAME(name))
- #define wxPOST_NO_WARNING_SCOPE(name)
-#else
- #define wxPRE_NO_WARNING_SCOPE(name) do
- #define wxPOST_NO_WARNING_SCOPE(name) while ( wxFalse )
-#endif
-
#define wxCHECKED_DELETE(ptr) \
- wxPRE_NO_WARNING_SCOPE(scope_var1) \
- { \
- typedef char complete[sizeof(*ptr)]; \
+ wxSTATEMENT_MACRO_BEGIN \
+ typedef char complete[sizeof(*ptr)] WX_ATTRIBUTE_UNUSED; \
delete ptr; \
- } wxPOST_NO_WARNING_SCOPE(scope_var1)
+ wxSTATEMENT_MACRO_END
#define wxCHECKED_DELETE_ARRAY(ptr) \
- wxPRE_NO_WARNING_SCOPE(scope_var2) \
- { \
- typedef char complete[sizeof(*ptr)]; \
+ wxSTATEMENT_MACRO_BEGIN \
+ typedef char complete[sizeof(*ptr)] WX_ATTRIBUTE_UNUSED; \
delete [] ptr; \
- } wxPOST_NO_WARNING_SCOPE(scope_var2)
+ wxSTATEMENT_MACRO_END
#endif // _WX_CHECKEDDELETE_H_