Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

delete.h File Reference


Detailed Description

Include this file right after IObject.h (or instead of) to detect accidental uses of "delete" on an XPLC interface.

Use "xplcdelete" instead of "delete" when you know what you are doing.

#include <new>
#include <memory>
#include <xplc/IObject.h>

Include dependency graph for delete.h:

Go to the source code of this file.

Defines

#define xplcdelete   CheckIObjectOk() &&
 Macro used to indicate a valid use of the delete keyword with an XPLC interface.
#define delete   CheckIObject() &&
 Overriding the delete keyword.
#define deletev   CheckIObjectOkVector() &&
 Remplacement for delete[].

Functions

template<class T>
void operator && (CheckIObject, const T *obj)
 struct XPLC_CTAssert<true> {};


Define Documentation

#define xplcdelete   CheckIObjectOk() &&
 

Macro used to indicate a valid use of the delete keyword with an XPLC interface.

In some cases, you really need to use delete on an object that derives from IObject. In those cases, use "xplcdelete" instead of "delete".

#define delete   CheckIObject() &&
 

Overriding the delete keyword.

This replaces the delete keyword with an invocation of the operator&& using a specific marker class as the left operand, allowing it to be templated on the right operand.

#define deletev   CheckIObjectOkVector() &&
 

Remplacement for delete[].

Because we cannot capture usage of delete[] using macros, we have to add a replacement for it, unfortunately.


Generated on Sun Jul 10 15:30:22 2005 for WvStreams by  doxygen 1.4.0