- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# FUtils/FUtils.h File Reference

Includes the common utilities classes and macros. More...

`#include "FUtils/Platforms.h"`
`#include "FUtils/FUAssert.h"`
`#include "FMath/FMath.h"`
`#include <libxml/tree.h>`
`#include "FUtils/FUObjectType.h"`
`#include "FUtils/FUObject.h"`
`#include "FUtils/FUTracker.h"`
`#include "FUtils/FUString.h"`
`#include "FUtils/FUCrc32.h"`
`#include "FUtils/FUDebug.h"`
`#include "FUtils/FUError.h"`

Go to the source code of this file.

## Defines
#define | NOMINMAX
| Rid us of the default versions of MINMAX.
#define | UNUSED(a)
| Removes a piece of code during the pre-process.
#define | UNUSED_NDEBUG(a)
| Removes a piece of debug code during the pre-process.
#define | HAS_VECTORTYPES
| Used by FCollada, implies that we are including all the common dynamically-sized arrays.
#define | HAS_LIBXML
| Used by FCollada, implies that we are including LibXML functions in the library interface.
#define | LIBXML_STATIC
| Used by LibXML, implies that we are statically-linking the LibXML.
#define | SAFE_DELETE(ptr) if ((ptr) != NULL) { delete (ptr); (ptr) = NULL; }
| This macro safely deletes a pointer and sets the given pointer to NULL.
#define | SAFE_DELETE_ARRAY(ptr) if (ptr != NULL) { delete [] ptr; ptr = NULL; }
| This macro safely deletes an heap array and sets the given pointer to NULL.
#define | SAFE_FREE(ptr) if (ptr != NULL) { free(ptr); ptr = NULL; }
| This macro safely frees a memory block and sets the given pointer to NULL.
#define | SAFE_RELEASE(ptr) { if ((ptr) != NULL) { (ptr)->Release(); (ptr) = NULL; } }
| This macro safely releases an interface and sets the given pointer to NULL.
#define | CLEAR_POINTER_VECTOR(a) { size_t l = (a).size(); for (size_t i = 0; i < l; ++i) SAFE_DELETE((a)[i]); (a).clear(); }
| This macro deletes all the object pointers contained within a vector and clears it.
#define | CLEAR_ARRAY_VECTOR(a) { size_t l = (a).size(); for (size_t i = 0; i < l; ++i) SAFE_DELETE_ARRAY((a)[i]); (a).clear(); }
| This macro deletes all the object array pointers contained within a vector and clears it.
#define | CLEAR_POINTER_STD_PAIR_CONT(cont, a) { for (cont::iterator it = (a).begin(); it != (a).end(); ++it) SAFE_DELETE((*it).second); (a).clear(); }
| This macro deletes all the object pointers contained within any std container and clears it.
#define | CLEAR_POINTER_STD_CONT(cont, a) { for (cont::iterator it = (a).begin(); it != (a).end(); ++it) SAFE_DELETE((*it)); (a).clear(); }
| This macro deletes all the object pointers contained within any std container and clears it.
#define | ENABLE_TEST
| Used by FCollada, enables the compilation and gives access to the unit tests.
## Functions
template<class T>
T & | max (T &x, T &y)
| Retrieves the largest of two values.
template<class T>
const T & | max (const T &x, const T &y)
| See above.
template<class T>
T & | min (T &x, T &y)
| Retrieves the smallest of two values.
template<class T>
const T & | min (const T &x, const T &y)
| See above.

## Detailed Description

Includes the common utilities classes and macros.

## Define Documentation

#define ENABLE_TEST

| Used by FCollada, enables the compilation and gives access to the unit tests. Disabled in the retail configurations.

#define UNUSED | ( | a |  | ) |

| Removes a piece of code during the pre-process. This macro is useful for these pesky unused variable warnings.

#define UNUSED_NDEBUG | ( | a |  | ) |

| Removes a piece of debug code during the pre-process. This macro is useful for these pesky unused variable warnings.