Generated_Templates.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. // DO NOT EDIT. This file is generated
  2. #pragma once
  3. #include <AngelScript/angelscript.h>
  4. #include <new>
  5. namespace Urho3D
  6. {
  7. // Constructors that don't require parameter conversion between C++ and AngelScript
  8. #ifdef AS_MAX_PORTABILITY
  9. template <class C>
  10. void ASCompatibleConstructor(asIScriptGeneric* gen)
  11. {
  12. new (gen->GetObject()) C();
  13. }
  14. template <class C, typename P0>
  15. void ASCompatibleConstructor(asIScriptGeneric* gen)
  16. {
  17. new (gen->GetObject()) C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)));
  18. }
  19. template <class C, typename P0, typename P1>
  20. void ASCompatibleConstructor(asIScriptGeneric* gen)
  21. {
  22. new (gen->GetObject()) C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  23. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)));
  24. }
  25. template <class C, typename P0, typename P1, typename P2>
  26. void ASCompatibleConstructor(asIScriptGeneric* gen)
  27. {
  28. new (gen->GetObject()) C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  29. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  30. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2)));
  31. }
  32. template <class C, typename P0, typename P1, typename P2, typename P3>
  33. void ASCompatibleConstructor(asIScriptGeneric* gen)
  34. {
  35. new (gen->GetObject()) C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  36. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  37. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2)),
  38. *reinterpret_cast<P3*>(gen->GetAddressOfArg(3)));
  39. }
  40. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4>
  41. void ASCompatibleConstructor(asIScriptGeneric* gen)
  42. {
  43. new (gen->GetObject()) C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  44. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  45. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2)),
  46. *reinterpret_cast<P3*>(gen->GetAddressOfArg(3)),
  47. *reinterpret_cast<P4*>(gen->GetAddressOfArg(4)));
  48. }
  49. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5>
  50. void ASCompatibleConstructor(asIScriptGeneric* gen)
  51. {
  52. new (gen->GetObject()) C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  53. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  54. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2)),
  55. *reinterpret_cast<P3*>(gen->GetAddressOfArg(3)),
  56. *reinterpret_cast<P4*>(gen->GetAddressOfArg(4)),
  57. *reinterpret_cast<P5*>(gen->GetAddressOfArg(5)));
  58. }
  59. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
  60. void ASCompatibleConstructor(asIScriptGeneric* gen)
  61. {
  62. new (gen->GetObject()) C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  63. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  64. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2)),
  65. *reinterpret_cast<P3*>(gen->GetAddressOfArg(3)),
  66. *reinterpret_cast<P4*>(gen->GetAddressOfArg(4)),
  67. *reinterpret_cast<P5*>(gen->GetAddressOfArg(5)),
  68. *reinterpret_cast<P6*>(gen->GetAddressOfArg(6)));
  69. }
  70. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7>
  71. void ASCompatibleConstructor(asIScriptGeneric* gen)
  72. {
  73. new (gen->GetObject()) C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  74. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  75. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2)),
  76. *reinterpret_cast<P3*>(gen->GetAddressOfArg(3)),
  77. *reinterpret_cast<P4*>(gen->GetAddressOfArg(4)),
  78. *reinterpret_cast<P5*>(gen->GetAddressOfArg(5)),
  79. *reinterpret_cast<P6*>(gen->GetAddressOfArg(6)),
  80. *reinterpret_cast<P7*>(gen->GetAddressOfArg(7)));
  81. }
  82. #else
  83. template <class C>
  84. void ASCompatibleConstructor(C* ptr)
  85. {
  86. new (ptr) C();
  87. }
  88. template <class C, typename P0>
  89. void ASCompatibleConstructor(C* ptr, P0 p0)
  90. {
  91. new (ptr) C(p0);
  92. }
  93. template <class C, typename P0, typename P1>
  94. void ASCompatibleConstructor(C* ptr, P0 p0, P1 p1)
  95. {
  96. new (ptr) C(p0, p1);
  97. }
  98. template <class C, typename P0, typename P1, typename P2>
  99. void ASCompatibleConstructor(C* ptr, P0 p0, P1 p1, P2 p2)
  100. {
  101. new (ptr) C(p0, p1, p2);
  102. }
  103. template <class C, typename P0, typename P1, typename P2, typename P3>
  104. void ASCompatibleConstructor(C* ptr, P0 p0, P1 p1, P2 p2, P3 p3)
  105. {
  106. new (ptr) C(p0, p1, p2, p3);
  107. }
  108. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4>
  109. void ASCompatibleConstructor(C* ptr, P0 p0, P1 p1, P2 p2, P3 p3, P4 p4)
  110. {
  111. new (ptr) C(p0, p1, p2, p3, p4);
  112. }
  113. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5>
  114. void ASCompatibleConstructor(C* ptr, P0 p0, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
  115. {
  116. new (ptr) C(p0, p1, p2, p3, p4, p5);
  117. }
  118. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
  119. void ASCompatibleConstructor(C* ptr, P0 p0, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
  120. {
  121. new (ptr) C(p0, p1, p2, p3, p4, p5, p6);
  122. }
  123. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7>
  124. void ASCompatibleConstructor(C* ptr, P0 p0, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
  125. {
  126. new (ptr) C(p0, p1, p2, p3, p4, p5, p6, p7);
  127. }
  128. #endif
  129. // Factories that don't require parameter conversion between C++ and AngelScript
  130. #ifdef AS_MAX_PORTABILITY
  131. template <class C>
  132. void ASCompatibleFactory(asIScriptGeneric* gen)
  133. {
  134. gen->SetReturnAddress(new C());
  135. }
  136. template <class C, typename P0>
  137. void ASCompatibleFactory(asIScriptGeneric* gen)
  138. {
  139. gen->SetReturnAddress(new C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0))));
  140. }
  141. template <class C, typename P0, typename P1>
  142. void ASCompatibleFactory(asIScriptGeneric* gen)
  143. {
  144. gen->SetReturnAddress(new C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  145. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1))));
  146. }
  147. template <class C, typename P0, typename P1, typename P2>
  148. void ASCompatibleFactory(asIScriptGeneric* gen)
  149. {
  150. gen->SetReturnAddress(new C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  151. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  152. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2))));
  153. }
  154. template <class C, typename P0, typename P1, typename P2, typename P3>
  155. void ASCompatibleFactory(asIScriptGeneric* gen)
  156. {
  157. gen->SetReturnAddress(new C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  158. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  159. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2)),
  160. *reinterpret_cast<P3*>(gen->GetAddressOfArg(3))));
  161. }
  162. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4>
  163. void ASCompatibleFactory(asIScriptGeneric* gen)
  164. {
  165. gen->SetReturnAddress(new C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  166. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  167. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2)),
  168. *reinterpret_cast<P3*>(gen->GetAddressOfArg(3)),
  169. *reinterpret_cast<P4*>(gen->GetAddressOfArg(4))));
  170. }
  171. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5>
  172. void ASCompatibleFactory(asIScriptGeneric* gen)
  173. {
  174. gen->SetReturnAddress(new C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  175. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  176. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2)),
  177. *reinterpret_cast<P3*>(gen->GetAddressOfArg(3)),
  178. *reinterpret_cast<P4*>(gen->GetAddressOfArg(4)),
  179. *reinterpret_cast<P5*>(gen->GetAddressOfArg(5))));
  180. }
  181. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
  182. void ASCompatibleFactory(asIScriptGeneric* gen)
  183. {
  184. gen->SetReturnAddress(new C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  185. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  186. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2)),
  187. *reinterpret_cast<P3*>(gen->GetAddressOfArg(3)),
  188. *reinterpret_cast<P4*>(gen->GetAddressOfArg(4)),
  189. *reinterpret_cast<P5*>(gen->GetAddressOfArg(5)),
  190. *reinterpret_cast<P6*>(gen->GetAddressOfArg(6))));
  191. }
  192. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7>
  193. void ASCompatibleFactory(asIScriptGeneric* gen)
  194. {
  195. gen->SetReturnAddress(new C(*reinterpret_cast<P0*>(gen->GetAddressOfArg(0)),
  196. *reinterpret_cast<P1*>(gen->GetAddressOfArg(1)),
  197. *reinterpret_cast<P2*>(gen->GetAddressOfArg(2)),
  198. *reinterpret_cast<P3*>(gen->GetAddressOfArg(3)),
  199. *reinterpret_cast<P4*>(gen->GetAddressOfArg(4)),
  200. *reinterpret_cast<P5*>(gen->GetAddressOfArg(5)),
  201. *reinterpret_cast<P6*>(gen->GetAddressOfArg(6)),
  202. *reinterpret_cast<P7*>(gen->GetAddressOfArg(7))));
  203. }
  204. #else
  205. template <class C>
  206. C* ASCompatibleFactory()
  207. {
  208. return new C();
  209. }
  210. template <class C, typename P0>
  211. C* ASCompatibleFactory(P0 p0)
  212. {
  213. return new C(p0);
  214. }
  215. template <class C, typename P0, typename P1>
  216. C* ASCompatibleFactory(P0 p0, P1 p1)
  217. {
  218. return new C(p0, p1);
  219. }
  220. template <class C, typename P0, typename P1, typename P2>
  221. C* ASCompatibleFactory(P0 p0, P1 p1, P2 p2)
  222. {
  223. return new C(p0, p1, p2);
  224. }
  225. template <class C, typename P0, typename P1, typename P2, typename P3>
  226. C* ASCompatibleFactory(P0 p0, P1 p1, P2 p2, P3 p3)
  227. {
  228. return new C(p0, p1, p2, p3);
  229. }
  230. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4>
  231. C* ASCompatibleFactory(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4)
  232. {
  233. return new C(p0, p1, p2, p3, p4);
  234. }
  235. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5>
  236. C* ASCompatibleFactory(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
  237. {
  238. return new C(p0, p1, p2, p3, p4, p5);
  239. }
  240. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
  241. C* ASCompatibleFactory(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
  242. {
  243. return new C(p0, p1, p2, p3, p4, p5, p6);
  244. }
  245. template <class C, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7>
  246. C* ASCompatibleFactory(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
  247. {
  248. return new C(p0, p1, p2, p3, p4, p5, p6, p7);
  249. }
  250. #endif
  251. } // namespace Urho3D