00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00020 #ifndef _FBXSDK_CORE_ARCH_NEW_H_
00021 #define _FBXSDK_CORE_ARCH_NEW_H_
00022
00023 #include <fbxsdk/fbxsdk_def.h>
00024
00025 #include <new>
00026
00027 #if defined(FBXSDK_COMPILER_MSC)
00028 #pragma warning(push)
00029 #pragma warning(disable : 4345) //warning C4345: behavior change: an object of POD type constructed with an initializer of the form () will be default-initialized
00030 #endif
00031
00032 #include <fbxsdk/fbxsdk_nsbegin.h>
00033
00034
00035 template<typename T> struct FbxSimpleType { enum {value = 0}; };
00036 template<typename T> struct FbxSimpleType<T*> { enum {value = 1}; };
00037 template<typename T> struct FbxSimpleType<const T> { enum {value = FbxSimpleType<T>::value}; };
00038 template<typename T, size_t n> struct FbxSimpleType<T[n]> { enum {value = FbxSimpleType<T>::value}; };
00039
00040 #define FBXSDK_DEFINE_SIMPLE_TYPE(T) template<> struct FbxSimpleType<T>{ union {T t;} catcherr; enum {value = 1};}
00041
00042 FBXSDK_DEFINE_SIMPLE_TYPE(bool);
00043 FBXSDK_DEFINE_SIMPLE_TYPE(char);
00044 FBXSDK_DEFINE_SIMPLE_TYPE(unsigned char);
00045 FBXSDK_DEFINE_SIMPLE_TYPE(short);
00046 FBXSDK_DEFINE_SIMPLE_TYPE(unsigned short);
00047 FBXSDK_DEFINE_SIMPLE_TYPE(int);
00048 FBXSDK_DEFINE_SIMPLE_TYPE(unsigned int);
00049 FBXSDK_DEFINE_SIMPLE_TYPE(long);
00050 FBXSDK_DEFINE_SIMPLE_TYPE(unsigned long);
00051 FBXSDK_DEFINE_SIMPLE_TYPE(float);
00052 FBXSDK_DEFINE_SIMPLE_TYPE(double);
00053 FBXSDK_DEFINE_SIMPLE_TYPE(long double);
00054 FBXSDK_DEFINE_SIMPLE_TYPE(long long);
00055 FBXSDK_DEFINE_SIMPLE_TYPE(unsigned long long);
00056
00057 #define FBXSDK_IS_SIMPLE_TYPE(T) ((bool)FbxSimpleType<T>::value)
00058
00059 template<typename T> T* FbxNew()
00060 {
00061 T* p = (T*)FbxMalloc(sizeof(T));
00062 return new(p)T();
00063 }
00064
00065 template<typename T, typename T1> T* FbxNew(T1& p1)
00066 {
00067 T* p = (T*)FbxMalloc(sizeof(T));
00068 return new(p)T(p1);
00069 }
00070
00071 template<typename T, typename T1> T* FbxNew(const T1& p1)
00072 {
00073 T* p = (T*)FbxMalloc(sizeof(T));
00074 return new(p)T(p1);
00075 }
00076
00077 template<typename T, typename T1, typename T2> T* FbxNew(T1& p1, T2& p2)
00078 {
00079 T* p = (T*)FbxMalloc(sizeof(T));
00080 return new(p)T(p1, p2);
00081 }
00082
00083 template<typename T, typename T1, typename T2> T* FbxNew(T1& p1, const T2& p2)
00084 {
00085 T* p = (T*)FbxMalloc(sizeof(T));
00086 return new(p)T(p1, p2);
00087 }
00088
00089 template<typename T, typename T1, typename T2> T* FbxNew(const T1& p1, T2& p2)
00090 {
00091 T* p = (T*)FbxMalloc(sizeof(T));
00092 return new(p)T(p1, p2);
00093 }
00094
00095 template<typename T, typename T1, typename T2> T* FbxNew(const T1& p1, const T2& p2)
00096 {
00097 T* p = (T*)FbxMalloc(sizeof(T));
00098 return new(p)T(p1, p2);
00099 }
00100
00101 template<typename T, typename T1, typename T2, typename T3> T* FbxNew(T1& p1, T2& p2, T3& p3)
00102 {
00103 T* p = (T*)FbxMalloc(sizeof(T));
00104 return new(p)T(p1, p2, p3);
00105 }
00106
00107 template<typename T, typename T1, typename T2, typename T3> T* FbxNew(T1& p1, T2& p2, const T3& p3)
00108 {
00109 T* p = (T*)FbxMalloc(sizeof(T));
00110 return new(p)T(p1, p2, p3);
00111 }
00112
00113 template<typename T, typename T1, typename T2, typename T3> T* FbxNew(T1& p1, const T2& p2, T3& p3)
00114 {
00115 T* p = (T*)FbxMalloc(sizeof(T));
00116 return new(p)T(p1, p2, p3);
00117 }
00118
00119 template<typename T, typename T1, typename T2, typename T3> T* FbxNew(T1& p1, const T2& p2, const T3& p3)
00120 {
00121 T* p = (T*)FbxMalloc(sizeof(T));
00122 return new(p)T(p1, p2, p3);
00123 }
00124
00125 template<typename T, typename T1, typename T2, typename T3> T* FbxNew(const T1& p1, T2& p2, T3& p3)
00126 {
00127 T* p = (T*)FbxMalloc(sizeof(T));
00128 return new(p)T(p1, p2, p3);
00129 }
00130
00131 template<typename T, typename T1, typename T2, typename T3> T* FbxNew(const T1& p1, T2& p2, const T3& p3)
00132 {
00133 T* p = (T*)FbxMalloc(sizeof(T));
00134 return new(p)T(p1, p2, p3);
00135 }
00136
00137 template<typename T, typename T1, typename T2, typename T3> T* FbxNew(const T1& p1, const T2& p2, T3& p3)
00138 {
00139 T* p = (T*)FbxMalloc(sizeof(T));
00140 return new(p)T(p1, p2, p3);
00141 }
00142
00143 template<typename T, typename T1, typename T2, typename T3> T* FbxNew(const T1& p1, const T2& p2, const T3& p3)
00144 {
00145 T* p = (T*)FbxMalloc(sizeof(T));
00146 return new(p)T(p1, p2, p3);
00147 }
00148
00149 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, T2& p2, T3& p3, T4& p4)
00150 {
00151 T* p = (T*)FbxMalloc(sizeof(T));
00152 return new(p)T(p1, p2, p3, p4);
00153 }
00154
00155 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, T2& p2, T3& p3, const T4& p4)
00156 {
00157 T* p = (T*)FbxMalloc(sizeof(T));
00158 return new(p)T(p1, p2, p3, p4);
00159 }
00160
00161 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, T2& p2, const T3& p3, T4& p4)
00162 {
00163 T* p = (T*)FbxMalloc(sizeof(T));
00164 return new(p)T(p1, p2, p3, p4);
00165 }
00166
00167 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, T2& p2, const T3& p3, const T4& p4)
00168 {
00169 T* p = (T*)FbxMalloc(sizeof(T));
00170 return new(p)T(p1, p2, p3, p4);
00171 }
00172
00173 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, const T2& p2, T3& p3, T4& p4)
00174 {
00175 T* p = (T*)FbxMalloc(sizeof(T));
00176 return new(p)T(p1, p2, p3, p4);
00177 }
00178
00179 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, const T2& p2, T3& p3, const T4& p4)
00180 {
00181 T* p = (T*)FbxMalloc(sizeof(T));
00182 return new(p)T(p1, p2, p3, p4);
00183 }
00184
00185 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, const T2& p2, const T3& p3, T4& p4)
00186 {
00187 T* p = (T*)FbxMalloc(sizeof(T));
00188 return new(p)T(p1, p2, p3, p4);
00189 }
00190
00191 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(T1& p1, const T2& p2, const T3& p3, const T4& p4)
00192 {
00193 T* p = (T*)FbxMalloc(sizeof(T));
00194 return new(p)T(p1, p2, p3, p4);
00195 }
00196
00197 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(const T1& p1, T2& p2, T3& p3, T4& p4)
00198 {
00199 T* p = (T*)FbxMalloc(sizeof(T));
00200 return new(p)T(p1, p2, p3, p4);
00201 }
00202
00203 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(const T1& p1, T2& p2, T3& p3, const T4& p4)
00204 {
00205 T* p = (T*)FbxMalloc(sizeof(T));
00206 return new(p)T(p1, p2, p3, p4);
00207 }
00208
00209 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(const T1& p1, T2& p2, const T3& p3, T4& p4)
00210 {
00211 T* p = (T*)FbxMalloc(sizeof(T));
00212 return new(p)T(p1, p2, p3, p4);
00213 }
00214
00215 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(const T1& p1, T2& p2, const T3& p3, const T4& p4)
00216 {
00217 T* p = (T*)FbxMalloc(sizeof(T));
00218 return new(p)T(p1, p2, p3, p4);
00219 }
00220
00221 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(const T1& p1, const T2& p2, T3& p3, T4& p4)
00222 {
00223 T* p = (T*)FbxMalloc(sizeof(T));
00224 return new(p)T(p1, p2, p3, p4);
00225 }
00226
00227 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(const T1& p1, const T2& p2, T3& p3, const T4& p4)
00228 {
00229 T* p = (T*)FbxMalloc(sizeof(T));
00230 return new(p)T(p1, p2, p3, p4);
00231 }
00232
00233 template<typename T, typename T1, typename T2, typename T3, typename T4> T* FbxNew(const T1& p1, const T2& p2, const T3& p3, T4& p4)
00234 {
00235 T* p = (T*)FbxMalloc(sizeof(T));
00236 return new(p)T(p1, p2, p3, p4);
00237 }
00238
00239 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)
00240 {
00241 T* p = (T*)FbxMalloc(sizeof(T));
00242 return new(p)T(p1, p2, p3, p4);
00243 }
00244
00245 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)
00246 {
00247 T* p = (T*)FbxMalloc(sizeof(T));
00248 return new(p)T(p1,p2,p3,p4,p5);
00249 }
00250
00251 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)
00252 {
00253 T* p = (T*)FbxMalloc(sizeof(T));
00254 return new(p)T(p1,p2,p3,p4,p5);
00255 }
00256
00257 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)
00258 {
00259 T* p = (T*)FbxMalloc(sizeof(T));
00260 return new(p)T(p1,p2,p3,p4,p5);
00261 }
00262
00263 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)
00264 {
00265 T* p = (T*)FbxMalloc(sizeof(T));
00266 return new(p)T(p1,p2,p3,p4,p5);
00267 }
00268
00269 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)
00270 {
00271 T* p = (T*)FbxMalloc(sizeof(T));
00272 return new(p)T(p1,p2,p3,p4,p5);
00273 }
00274
00275 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)
00276 {
00277 T* p = (T*)FbxMalloc(sizeof(T));
00278 return new(p)T(p1,p2,p3,p4,p5);
00279 }
00280
00281 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)
00282 {
00283 T* p = (T*)FbxMalloc(sizeof(T));
00284 return new(p)T(p1,p2,p3,p4,p5);
00285 }
00286
00287 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)
00288 {
00289 T* p = (T*)FbxMalloc(sizeof(T));
00290 return new(p)T(p1,p2,p3,p4,p5);
00291 }
00292
00293 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)
00294 {
00295 T* p = (T*)FbxMalloc(sizeof(T));
00296 return new(p)T(p1,p2,p3,p4,p5);
00297 }
00298
00299 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)
00300 {
00301 T* p = (T*)FbxMalloc(sizeof(T));
00302 return new(p)T(p1,p2,p3,p4,p5);
00303 }
00304
00305 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)
00306 {
00307 T* p = (T*)FbxMalloc(sizeof(T));
00308 return new(p)T(p1,p2,p3,p4,p5);
00309 }
00310
00311 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)
00312 {
00313 T* p = (T*)FbxMalloc(sizeof(T));
00314 return new(p)T(p1,p2,p3,p4,p5);
00315 }
00316
00317 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)
00318 {
00319 T* p = (T*)FbxMalloc(sizeof(T));
00320 return new(p)T(p1,p2,p3,p4,p5,p6);
00321 }
00322
00323 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)
00324 {
00325 T* p = (T*)FbxMalloc(sizeof(T));
00326 return new(p)T(p1,p2,p3,p4,p5,p6,p7);
00327 }
00328
00329 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)
00330 {
00331 T* p = (T*)FbxMalloc(sizeof(T));
00332 return new(p)T(p1,p2,p3,p4,p5,p6,p7,p8);
00333 }
00334
00335 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)
00336 {
00337 T* p = (T*)FbxMalloc(sizeof(T));
00338 return new(p)T(p1,p2,p3,p4,p5,p6,p7,p8,p9);
00339 }
00340
00341 template<typename T> void FbxDelete(T* p)
00342 {
00343 if( p )
00344 {
00345 ((T*)p)->~T();
00346 FbxFree(p);
00347 }
00348 }
00349
00350 template<typename T> void FbxDelete(const T* p)
00351 {
00352 if( p )
00353 {
00354 ((T*)p)->~T();
00355 FbxFree(const_cast<T*>(p));
00356 }
00357 }
00358
00359 template<typename T> T* FbxNewArray(const int n)
00360 {
00361 if( FBXSDK_IS_SIMPLE_TYPE(T) )
00362 {
00363 return (T*)FbxMalloc(sizeof(T)*n);
00364 }
00365 else
00366 {
00367 void* pTmp = FbxMalloc(sizeof(T) * n + sizeof(int));
00368 T* p = (T*)((int*)pTmp+1);
00369 *((int*)pTmp) = n;
00370 for( int i = 0; i < n; ++i )
00371 new((T*)p+i)T;
00372 return p;
00373 }
00374 }
00375
00376 template<typename T> void FbxDeleteArray(T* p)
00377 {
00378 if( p )
00379 {
00380 if( !FBXSDK_IS_SIMPLE_TYPE(T) )
00381 {
00382 for(int i=0;i<((int*)p)[-1];++i)
00383 ((T*)p)[i].~T();
00384 FbxFree((int*)p-1);
00385 }
00386 else
00387 {
00388 FbxFree((void*)p);
00389 }
00390 }
00391 }
00392
00393 #define FBXSDK_FRIEND_NEW()\
00394 template<typename T>\
00395 friend T* FBXSDK_NAMESPACE::FbxNew();\
00396 template<typename T, typename T1>\
00397 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1);\
00398 template<typename T, typename T1>\
00399 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1);\
00400 template<typename T, typename T1, typename T2>\
00401 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2);\
00402 template<typename T, typename T1, typename T2>\
00403 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2);\
00404 template<typename T, typename T1, typename T2>\
00405 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2);\
00406 template<typename T, typename T1, typename T2>\
00407 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2);\
00408 template<typename T, typename T1, typename T2, typename T3>\
00409 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, T3& p3);\
00410 template<typename T, typename T1, typename T2, typename T3>\
00411 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, const T3& p3);\
00412 template<typename T, typename T1, typename T2, typename T3>\
00413 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, T3& p3);\
00414 template<typename T, typename T1, typename T2, typename T3>\
00415 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, const T3& p3);\
00416 template<typename T, typename T1, typename T2, typename T3>\
00417 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, T3& p3);\
00418 template<typename T, typename T1, typename T2, typename T3>\
00419 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, const T3& p3);\
00420 template<typename T, typename T1, typename T2, typename T3>\
00421 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, T3& p3);\
00422 template<typename T, typename T1, typename T2, typename T3>\
00423 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, const T3& p3);\
00424 \
00425 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00426 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, T3& p3, T4& p4);\
00427 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00428 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, T3& p3, const T4& p4);\
00429 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00430 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, const T3& p3, T4& p4);\
00431 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00432 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, const T3& p3, const T4& p4);\
00433 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00434 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, T3& p3, T4& p4);\
00435 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00436 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, T3& p3, const T4& p4);\
00437 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00438 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, const T3& p3, T4& p4);\
00439 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00440 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, const T2& p2, const T3& p3, const T4& p4);\
00441 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00442 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, T3& p3, T4& p4);\
00443 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00444 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, T3& p3, const T4& p4);\
00445 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00446 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, const T3& p3, T4& p4);\
00447 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00448 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, const T3& p3, const T4& p4);\
00449 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00450 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, T3& p3, T4& p4);\
00451 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00452 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, T3& p3, const T4& p4);\
00453 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00454 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, const T3& p3, T4& p4);\
00455 template<typename T, typename T1, typename T2, typename T3, typename T4>\
00456 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, const T3& p3, const T4& p4);\
00457 \
00458 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00459 friend T* FBXSDK_NAMESPACE::FbxNew(T1& p1, T2& p2, T3& p3, T4& p4, T5& p5);\
00460 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00461 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, T3& p3, T4& p4, T5& p5);\
00462 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00463 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, T3& p3, T4& p4, T5& p5);\
00464 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00465 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, const T3& p3, T4& p4, T5& p5);\
00466 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00467 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, T3& p3, const T4& p4, T5& p5);\
00468 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00469 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, T2& p2, T3& p3, T4& p4, const T5& p5);\
00470 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00471 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, const T3& p3, T4& p4, T5& p5);\
00472 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00473 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, T3& p3, const T4& p4, T5& p5);\
00474 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00475 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, T3& p3, T4& p4, const T5& p5);\
00476 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00477 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, const T3& p3, const T4& p4, T5& p5);\
00478 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00479 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, const T3& p3, T4& p4, const T5& p5);\
00480 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5>\
00481 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, const T3& p3, const T4& p4, const T5& p5);\
00482 \
00483 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>\
00484 friend T* FBXSDK_NAMESPACE::FbxNew(const T1& p1, const T2& p2, const T3& p3, const T4& p4, const T5& p5, const T6& p6);\
00485 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>\
00486 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);\
00487 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>\
00488 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);\
00489 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>\
00490 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);\
00491 template<typename T>\
00492 friend void FBXSDK_NAMESPACE::FbxDelete(T* p);\
00493 template<typename T>\
00494 friend void FBXSDK_NAMESPACE::FbxDelete(const T* p);\
00495 template<typename T>\
00496 friend T* FBXSDK_NAMESPACE::FbxNewArray(const int n);\
00497 template<typename T>\
00498 friend void FBXSDK_NAMESPACE::FbxDeleteArray(T* p);
00499
00500 #ifdef FBXSDK_COMPILER_MSC
00501 #pragma warning(pop)
00502 #endif
00503
00504 #include <fbxsdk/fbxsdk_nsend.h>
00505
00506 #endif