fbxnew.h File Reference

New operator override templates. More...

#include <fbxsdk/fbxsdk_def.h>
#include <new>
#include <fbxsdk/fbxsdk_nsbegin.h>
#include <fbxsdk/fbxsdk_nsend.h>

Go to the source code of this file.

Classes

struct  FbxSimpleType< T >
struct  FbxSimpleType< T * >
struct  FbxSimpleType< const T >
struct  FbxSimpleType< T[n]>

Defines

#define FBXSDK_DEFINE_SIMPLE_TYPE(T)   template<> struct FbxSimpleType<T>{ union {T t;} catcherr; enum {value = 1};}
#define FBXSDK_IS_SIMPLE_TYPE(T)   ((bool)FbxSimpleType<T>::value)
#define FBXSDK_FRIEND_NEW()

Functions

 FBXSDK_DEFINE_SIMPLE_TYPE (bool)
 FBXSDK_DEFINE_SIMPLE_TYPE (char)
 FBXSDK_DEFINE_SIMPLE_TYPE (unsigned char)
 FBXSDK_DEFINE_SIMPLE_TYPE (short)
 FBXSDK_DEFINE_SIMPLE_TYPE (int)
 FBXSDK_DEFINE_SIMPLE_TYPE (long)
 FBXSDK_DEFINE_SIMPLE_TYPE (float)
 FBXSDK_DEFINE_SIMPLE_TYPE (double)
 FBXSDK_DEFINE_SIMPLE_TYPE (unsigned long long)
template<typename T >
T * FbxNew ()
template<typename T , typename T1 >
T * FbxNew (T1 &p1)
template<typename T , typename T1 >
T * FbxNew (const T1 &p1)
template<typename T , typename T1 , typename T2 >
T * FbxNew (T1 &p1, T2 &p2)
template<typename T , typename T1 , typename T2 >
T * FbxNew (T1 &p1, const T2 &p2)
template<typename T , typename T1 , typename T2 >
T * FbxNew (const T1 &p1, T2 &p2)
template<typename T , typename T1 , typename T2 >
T * FbxNew (const T1 &p1, const T2 &p2)
template<typename T , typename T1 , typename T2 , typename T3 >
T * FbxNew (T1 &p1, T2 &p2, T3 &p3)
template<typename T , typename T1 , typename T2 , typename T3 >
T * FbxNew (T1 &p1, T2 &p2, const T3 &p3)
template<typename T , typename T1 , typename T2 , typename T3 >
T * FbxNew (T1 &p1, const T2 &p2, T3 &p3)
template<typename T , typename T1 , typename T2 , typename T3 >
T * FbxNew (T1 &p1, const T2 &p2, const T3 &p3)
template<typename T , typename T1 , typename T2 , typename T3 >
T * FbxNew (const T1 &p1, T2 &p2, T3 &p3)
template<typename T , typename T1 , typename T2 , typename T3 >
T * FbxNew (const T1 &p1, T2 &p2, const T3 &p3)
template<typename T , typename T1 , typename T2 , typename T3 >
T * FbxNew (const T1 &p1, const T2 &p2, T3 &p3)
template<typename T , typename T1 , typename T2 , typename T3 >
T * FbxNew (const T1 &p1, const T2 &p2, const T3 &p3)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (T1 &p1, T2 &p2, T3 &p3, T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (T1 &p1, T2 &p2, T3 &p3, const T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (T1 &p1, T2 &p2, const T3 &p3, T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (T1 &p1, T2 &p2, const T3 &p3, const T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (T1 &p1, const T2 &p2, T3 &p3, T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (T1 &p1, const T2 &p2, T3 &p3, const T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (T1 &p1, const T2 &p2, const T3 &p3, T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (const T1 &p1, T2 &p2, T3 &p3, T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (const T1 &p1, T2 &p2, T3 &p3, const T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (const T1 &p1, T2 &p2, const T3 &p3, T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (const T1 &p1, T2 &p2, const T3 &p3, const T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (const T1 &p1, const T2 &p2, T3 &p3, T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (const T1 &p1, const T2 &p2, T3 &p3, const T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (T1 &p1, T2 &p2, T3 &p3, T4 &p4, T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (const T1 &p1, T2 &p2, T3 &p3, T4 &p4, T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (const T1 &p1, const T2 &p2, T3 &p3, T4 &p4, T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (const T1 &p1, T2 &p2, const T3 &p3, T4 &p4, T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (const T1 &p1, T2 &p2, T3 &p3, const T4 &p4, T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (const T1 &p1, T2 &p2, T3 &p3, T4 &p4, const T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, T4 &p4, T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (const T1 &p1, const T2 &p2, T3 &p3, const T4 &p4, T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (const T1 &p1, const T2 &p2, T3 &p3, T4 &p4, const T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, T4 &p4, const T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, const T5 &p5)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
T * FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, const T5 &p5, const T6 &p6)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
T * FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, const T5 &p5, const T6 &p6, const T7 &p7)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
T * FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, const T5 &p5, const T6 &p6, const T7 &p7, const T8 &p8)
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
T * FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, const T5 &p5, const T6 &p6, const T7 &p7, const T8 &p8, const T9 &p9)
template<typename T >
void FbxDelete (T *p)
template<typename T >
void FbxDelete (const T *p)
template<typename T >
T * FbxNewArray (const int n)
template<typename T >
void FbxDeleteArray (T *p)

Detailed Description

New operator override templates.

Instead of overloading the operator new in the FBX SDK, we provide a set of templates that are used internally to create objects. This mechanic allows the FBX SDK to call a different memory allocator.

See also:
FbxSetMallocHandler FbxSetCallocHandler FbxSetReallocHandler FbxSetFreeHandler FbxSetMSizeHandler

Definition in file fbxnew.h.


Define Documentation

#define FBXSDK_DEFINE_SIMPLE_TYPE (   T)    template<> struct FbxSimpleType<T>{ union {T t;} catcherr; enum {value = 1};}

Definition at line 40 of file fbxnew.h.

#define FBXSDK_IS_SIMPLE_TYPE (   T)    ((bool)FbxSimpleType<T>::value)

Definition at line 57 of file fbxnew.h.

#define FBXSDK_FRIEND_NEW ( )

Definition at line 393 of file fbxnew.h.


Function Documentation

FBXSDK_DEFINE_SIMPLE_TYPE ( bool  )
FBXSDK_DEFINE_SIMPLE_TYPE ( char  )
FBXSDK_DEFINE_SIMPLE_TYPE ( unsigned  char)
FBXSDK_DEFINE_SIMPLE_TYPE ( short  )
FBXSDK_DEFINE_SIMPLE_TYPE ( int  )
FBXSDK_DEFINE_SIMPLE_TYPE ( long  )
FBXSDK_DEFINE_SIMPLE_TYPE ( float  )
FBXSDK_DEFINE_SIMPLE_TYPE ( double  )
FBXSDK_DEFINE_SIMPLE_TYPE ( unsigned long  long)
T* FbxNew ( )

Definition at line 59 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T();
}
T* FbxNew ( T1 &  p1)

Definition at line 65 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1);
}
T* FbxNew ( const T1 &  p1)

Definition at line 71 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1);
}
T* FbxNew ( T1 &  p1,
T2 &  p2 
)

Definition at line 77 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2);
}
T* FbxNew ( T1 &  p1,
const T2 &  p2 
)

Definition at line 83 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2);
}
T* FbxNew ( const T1 &  p1,
T2 &  p2 
)

Definition at line 89 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2 
)

Definition at line 95 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2);
}
T* FbxNew ( T1 &  p1,
T2 &  p2,
T3 &  p3 
)

Definition at line 101 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3);
}
T* FbxNew ( T1 &  p1,
T2 &  p2,
const T3 &  p3 
)

Definition at line 107 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3);
}
T* FbxNew ( T1 &  p1,
const T2 &  p2,
T3 &  p3 
)

Definition at line 113 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3);
}
T* FbxNew ( T1 &  p1,
const T2 &  p2,
const T3 &  p3 
)

Definition at line 119 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3);
}
T* FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3 
)

Definition at line 125 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3);
}
T* FbxNew ( const T1 &  p1,
T2 &  p2,
const T3 &  p3 
)

Definition at line 131 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3 
)

Definition at line 137 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3 
)

Definition at line 143 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3);
}
T* FbxNew ( T1 &  p1,
T2 &  p2,
T3 &  p3,
T4 &  p4 
)

Definition at line 149 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( T1 &  p1,
T2 &  p2,
T3 &  p3,
const T4 &  p4 
)

Definition at line 155 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( T1 &  p1,
T2 &  p2,
const T3 &  p3,
T4 &  p4 
)

Definition at line 161 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( T1 &  p1,
T2 &  p2,
const T3 &  p3,
const T4 &  p4 
)

Definition at line 167 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( T1 &  p1,
const T2 &  p2,
T3 &  p3,
T4 &  p4 
)

Definition at line 173 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( T1 &  p1,
const T2 &  p2,
T3 &  p3,
const T4 &  p4 
)

Definition at line 179 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( T1 &  p1,
const T2 &  p2,
const T3 &  p3,
T4 &  p4 
)

Definition at line 185 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4 
)

Definition at line 191 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3,
T4 &  p4 
)

Definition at line 197 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3,
const T4 &  p4 
)

Definition at line 203 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( const T1 &  p1,
T2 &  p2,
const T3 &  p3,
T4 &  p4 
)

Definition at line 209 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( const T1 &  p1,
T2 &  p2,
const T3 &  p3,
const T4 &  p4 
)

Definition at line 215 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3,
T4 &  p4 
)

Definition at line 221 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3,
const T4 &  p4 
)

Definition at line 227 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
T4 &  p4 
)

Definition at line 233 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4 
)

Definition at line 239 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1, p2, p3, p4);
}
T* FbxNew ( T1 &  p1,
T2 &  p2,
T3 &  p3,
T4 &  p4,
T5 &  p5 
)

Definition at line 245 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3,
T4 &  p4,
T5 &  p5 
)

Definition at line 251 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3,
T4 &  p4,
T5 &  p5 
)

Definition at line 257 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
T2 &  p2,
const T3 &  p3,
T4 &  p4,
T5 &  p5 
)

Definition at line 263 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3,
const T4 &  p4,
T5 &  p5 
)

Definition at line 269 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3,
T4 &  p4,
const T5 &  p5 
)

Definition at line 275 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
T4 &  p4,
T5 &  p5 
)

Definition at line 281 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3,
const T4 &  p4,
T5 &  p5 
)

Definition at line 287 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3,
T4 &  p4,
const T5 &  p5 
)

Definition at line 293 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
T5 &  p5 
)

Definition at line 299 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
T4 &  p4,
const T5 &  p5 
)

Definition at line 305 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
const T5 &  p5 
)

Definition at line 311 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
const T5 &  p5,
const T6 &  p6 
)

Definition at line 317 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5,p6);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
const T5 &  p5,
const T6 &  p6,
const T7 &  p7 
)

Definition at line 323 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5,p6,p7);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
const T5 &  p5,
const T6 &  p6,
const T7 &  p7,
const T8 &  p8 
)

Definition at line 329 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5,p6,p7,p8);
}
T* FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
const T5 &  p5,
const T6 &  p6,
const T7 &  p7,
const T8 &  p8,
const T9 &  p9 
)

Definition at line 335 of file fbxnew.h.

{
    T* p = (T*)FbxMalloc(sizeof(T));
    return new(p)T(p1,p2,p3,p4,p5,p6,p7,p8,p9);
}
void FbxDelete ( T *  p)

Definition at line 341 of file fbxnew.h.

{
    if( p )
    {
        ((T*)p)->~T();
        FbxFree(p);
    }
}
void FbxDelete ( const T *  p)

Definition at line 350 of file fbxnew.h.

{
    if( p )
    {
        ((T*)p)->~T();
        FbxFree(const_cast<T*>(p));
    }
}
T* FbxNewArray ( const int  n)

Definition at line 359 of file fbxnew.h.

{
    if( FBXSDK_IS_SIMPLE_TYPE(T) )
    {
        return (T*)FbxMalloc(sizeof(T)*n);
    }
    else
    {
        void* pTmp = FbxMalloc(sizeof(T) * n + sizeof(int));
        T* p = (T*)((int*)pTmp+1);
        *((int*)pTmp) = n;
        for( int i = 0; i < n; ++i )
            new((T*)p+i)T;  //in-place new, not allocating memory so it is safe.
        return p;
    }
}
void FbxDeleteArray ( T *  p)

Definition at line 376 of file fbxnew.h.

{
    if( p )
    {
        if( !FBXSDK_IS_SIMPLE_TYPE(T) )
        {
            for(int i=0;i<((int*)p)[-1];++i)
                ((T*)p)[i].~T();
            FbxFree((int*)p-1);
        }
        else
        {
            FbxFree((void*)p);
        }
    }
}