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