| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510 |
- /****************************************************************************************
-
- Copyright (C) 2015 Autodesk, Inc.
- All rights reserved.
-
- Use of this software is subject to the terms of the Autodesk license agreement
- provided at the time of installation or download, or which otherwise accompanies
- this software in either electronic or hard copy form.
-
- ****************************************************************************************/
- /** \file fbxnew.h
- * 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 FbxSetMallocHandler FbxSetCallocHandler FbxSetReallocHandler FbxSetFreeHandler FbxSetMSizeHandler
- */
- #ifndef _FBXSDK_CORE_ARCH_NEW_H_
- #define _FBXSDK_CORE_ARCH_NEW_H_
- #include <fbxsdk/fbxsdk_def.h>
- #include <new>
- #if defined(FBXSDK_COMPILER_MSC)
- #pragma warning(push)
- #pragma warning(disable : 4345) //warning C4345: behavior change: an object of POD type constructed with an initializer of the form () will be default-initialized
- #endif
- #include <fbxsdk/fbxsdk_nsbegin.h>
- //Type traits for primitive types
- template<typename T> struct FbxSimpleType { enum {value = 0}; };
- template<typename T> struct FbxSimpleType<T*> { enum {value = 1}; };
- template<typename T> struct FbxSimpleType<const T> { enum {value = FbxSimpleType<T>::value}; };
- template<typename T, size_t n> struct FbxSimpleType<T[n]> { enum {value = FbxSimpleType<T>::value}; };
- #define FBXSDK_DEFINE_SIMPLE_TYPE(T) template<> struct FbxSimpleType<T>{ union {T t;} catcherr; enum {value = 1};}
- 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(unsigned short);
- FBXSDK_DEFINE_SIMPLE_TYPE(int);
- FBXSDK_DEFINE_SIMPLE_TYPE(unsigned int);
- FBXSDK_DEFINE_SIMPLE_TYPE(long);
- FBXSDK_DEFINE_SIMPLE_TYPE(unsigned long);
- FBXSDK_DEFINE_SIMPLE_TYPE(float);
- FBXSDK_DEFINE_SIMPLE_TYPE(double);
- FBXSDK_DEFINE_SIMPLE_TYPE(long double);
- FBXSDK_DEFINE_SIMPLE_TYPE(long long);
- FBXSDK_DEFINE_SIMPLE_TYPE(unsigned long long);
- #define FBXSDK_IS_SIMPLE_TYPE(T) ((bool)FbxSimpleType<T>::value)
- template<typename T> T* FbxNew()
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T();
- }
- template<typename T, typename T1> T* FbxNew(T1& p1)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1);
- }
- template<typename T, typename T1> T* FbxNew(const T1& p1)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1);
- }
- template<typename T, typename T1, typename T2> T* FbxNew(T1& p1, T2& p2)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2);
- }
- template<typename T, typename T1, typename T2> T* FbxNew(T1& p1, const T2& p2)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2);
- }
- template<typename T, typename T1, typename T2> T* FbxNew(const T1& p1, T2& p2)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2);
- }
- template<typename T, typename T1, typename T2> T* FbxNew(const T1& p1, const T2& p2)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2);
- }
- template<typename T, typename T1, typename T2, typename T3> T* FbxNew(T1& p1, T2& p2, T3& p3)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3);
- }
- template<typename T, typename T1, typename T2, typename T3> T* FbxNew(T1& p1, T2& p2, const T3& p3)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3);
- }
- template<typename T, typename T1, typename T2, typename T3> T* FbxNew(T1& p1, const T2& p2, T3& p3)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3);
- }
- template<typename T, typename T1, typename T2, typename T3> T* FbxNew(T1& p1, const T2& p2, const T3& p3)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3);
- }
- template<typename T, typename T1, typename T2, typename T3> T* FbxNew(const T1& p1, T2& p2, T3& p3)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3);
- }
- template<typename T, typename T1, typename T2, typename T3> T* FbxNew(const T1& p1, T2& p2, const T3& p3)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3);
- }
- template<typename T, typename T1, typename T2, typename T3> T* FbxNew(const T1& p1, const T2& p2, T3& p3)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3);
- }
- template<typename T, typename T1, typename T2, typename T3> T* FbxNew(const T1& p1, const T2& p2, const T3& p3)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3);
- }
- template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, T2& p2, T3& p3, T4& p4)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, p4);
- }
- template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, T2& p2, T3& p3, const T4& p4)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, p4);
- }
- template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, T2& p2, const T3& p3, T4& p4)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, p4);
- }
- template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, T2& p2, const T3& p3, const T4& p4)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, p4);
- }
- template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, const T2& p2, T3& p3, T4& p4)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, p4);
- }
- template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, const T2& p2, T3& p3, const T4& p4)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, p4);
- }
- template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, const T2& p2, const T3& p3, T4& p4)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, 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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, p4);
- }
- template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(const T1& p1, T2& p2, T3& p3, T4& p4)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, p4);
- }
- template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(const T1& p1, T2& p2, T3& p3, const T4& p4)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, p4);
- }
- template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(const T1& p1, T2& p2, const T3& p3, T4& p4)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, 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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, p4);
- }
- template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(const T1& p1, const T2& p2, T3& p3, T4& p4)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, 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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, 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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, 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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1, p2, p3, 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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,p5,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,p5,p6,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,p5,p6,p7,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)
- {
- T* p = (T*)FbxMalloc(sizeof(T));
- return new(p)T(p1,p2,p3,p4,p5,p6,p7,p8,p9);
- }
- template<typename T> void FbxDelete(T* p)
- {
- if( p )
- {
- ((T*)p)->~T();
- FbxFree(p);
- }
- }
- template<typename T> void FbxDelete(const T* p)
- {
- if( p )
- {
- ((T*)p)->~T();
- FbxFree(const_cast<T*>(p));
- }
- }
- template<typename T> T* FbxNewArray(const int n)
- {
- 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;
- }
- }
- template<typename T> void FbxDeleteArray(T* p)
- {
- 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);
- }
- }
- }
- #define FBXSDK_FRIEND_NEW()\
- template<typename T>\
- friend T* FBXSDK_NAMESPACE::FbxNew();\
- template<typename T, typename T1>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1);\
- template<typename T, typename T1>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1);\
- template<typename T, typename T1, typename T2>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2);\
- template<typename T, typename T1, typename T2>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2);\
- template<typename T, typename T1, typename T2>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2);\
- template<typename T, typename T1, typename T2>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2);\
- template<typename T, typename T1, typename T2, typename T3>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, T3& p3);\
- template<typename T, typename T1, typename T2, typename T3>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, const T3& p3);\
- template<typename T, typename T1, typename T2, typename T3>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, T3& p3);\
- template<typename T, typename T1, typename T2, typename T3>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, const T3& p3);\
- template<typename T, typename T1, typename T2, typename T3>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, T3& p3);\
- template<typename T, typename T1, typename T2, typename T3>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, const T3& p3);\
- template<typename T, typename T1, typename T2, typename T3>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, T3& p3);\
- template<typename T, typename T1, typename T2, typename T3>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, const T3& p3);\
- \
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, T3& p3, T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, T3& p3, const T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, const T3& p3, T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, const T3& p3, const T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, T3& p3, T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, T3& p3, const T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, const T3& p3, T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, const T3& p3, const T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, T3& p3, T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, T3& p3, const T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, const T3& p3, T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, const T3& p3, const T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, T3& p3, T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, T3& p3, const T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, const T3& p3, T4& p4);\
- template<typename T, typename T1, typename T2, typename T3, typename T4>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, T3& p3, T4& p4, T5& p5);\
- template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend T* FBXSDK_NAMESPACE::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>\
- friend void FBXSDK_NAMESPACE::FbxDelete(T* p);\
- template<typename T>\
- friend void FBXSDK_NAMESPACE::FbxDelete(const T* p);\
- template<typename T>\
- friend T* FBXSDK_NAMESPACE::FbxNewArray(const int n);\
- template<typename T>\
- friend void FBXSDK_NAMESPACE::FbxDeleteArray(T* p);
- #ifdef FBXSDK_COMPILER_MSC
- #pragma warning(pop)
- #endif
- #include <fbxsdk/fbxsdk_nsend.h>
- #endif /* _FBXSDK_CORE_ARCH_NEW_H_ */
|