PageRenderTime 54ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Lib/guile/std_pair.i

#
Swig | 868 lines | 824 code | 23 blank | 21 comment | 0 complexity | 626cd6aca9cb7dfa80c5499896c9617f MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. /* -----------------------------------------------------------------------------
  2. * std_pair.i
  3. *
  4. * SWIG typemaps for std::pair
  5. * ----------------------------------------------------------------------------- */
  6. %include <std_common.i>
  7. %include <exception.i>
  8. // ------------------------------------------------------------------------
  9. // std::pair
  10. //
  11. // See std_vector.i for the rationale of typemap application
  12. // ------------------------------------------------------------------------
  13. %{
  14. #include <utility>
  15. %}
  16. // exported class
  17. namespace std {
  18. template<class T, class U> struct pair {
  19. %typemap(in) pair<T,U> (std::pair<T,U>* m) {
  20. if (gh_pair_p($input)) {
  21. T* x;
  22. U* y;
  23. SCM first, second;
  24. first = gh_car($input);
  25. second = gh_cdr($input);
  26. x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
  27. y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
  28. $1 = std::make_pair(*x,*y);
  29. } else {
  30. $1 = *(($&1_type)
  31. SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0));
  32. }
  33. }
  34. %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
  35. std::pair<T,U>* m),
  36. const pair<T,U>* (std::pair<T,U> temp,
  37. std::pair<T,U>* m) {
  38. if (gh_pair_p($input)) {
  39. T* x;
  40. U* y;
  41. SCM first, second;
  42. first = gh_car($input);
  43. second = gh_cdr($input);
  44. x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
  45. y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
  46. temp = std::make_pair(*x,*y);
  47. $1 = &temp;
  48. } else {
  49. $1 = ($1_ltype)
  50. SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
  51. }
  52. }
  53. %typemap(out) pair<T,U> {
  54. T* x = new T($1.first);
  55. U* y = new U($1.second);
  56. SCM first = SWIG_NewPointerObj(x,$descriptor(T *), 1);
  57. SCM second = SWIG_NewPointerObj(y,$descriptor(U *), 1);
  58. $result = gh_cons(first,second);
  59. }
  60. %typecheck(SWIG_TYPECHECK_PAIR) pair<T,U> {
  61. /* native pair? */
  62. if (gh_pair_p($input)) {
  63. T* x;
  64. U* y;
  65. SCM first = gh_car($input);
  66. SCM second = gh_cdr($input);
  67. if (SWIG_ConvertPtr(first,(void**) &x,
  68. $descriptor(T *), 0) == 0 &&
  69. SWIG_ConvertPtr(second,(void**) &y,
  70. $descriptor(U *), 0) == 0) {
  71. $1 = 1;
  72. } else {
  73. $1 = 0;
  74. }
  75. } else {
  76. /* wrapped pair? */
  77. std::pair<T,U >* m;
  78. if (SWIG_ConvertPtr($input,(void **) &m,
  79. $&1_descriptor, 0) == 0)
  80. $1 = 1;
  81. else
  82. $1 = 0;
  83. }
  84. }
  85. %typecheck(SWIG_TYPECHECK_PAIR) const pair<T,U>&,
  86. const pair<T,U>* {
  87. /* native pair? */
  88. if (gh_pair_p($input)) {
  89. T* x;
  90. U* y;
  91. SCM first = gh_car($input);
  92. SCM second = gh_cdr($input);
  93. if (SWIG_ConvertPtr(first,(void**) &x,
  94. $descriptor(T *), 0) == 0 &&
  95. SWIG_ConvertPtr(second,(void**) &y,
  96. $descriptor(U *), 0) == 0) {
  97. $1 = 1;
  98. } else {
  99. $1 = 0;
  100. }
  101. } else {
  102. /* wrapped pair? */
  103. std::pair<T,U >* m;
  104. if (SWIG_ConvertPtr($input,(void **) &m,
  105. $1_descriptor, 0) == 0)
  106. $1 = 1;
  107. else
  108. $1 = 0;
  109. }
  110. }
  111. pair();
  112. pair(T first, U second);
  113. pair(const pair& p);
  114. template <class U1, class U2> pair(const pair<U1, U2> &p);
  115. T first;
  116. U second;
  117. };
  118. // specializations for built-ins
  119. %define specialize_std_pair_on_first(T,CHECK,CONVERT_FROM,CONVERT_TO)
  120. template<class U> struct pair<T,U> {
  121. %typemap(in) pair<T,U> (std::pair<T,U>* m) {
  122. if (gh_pair_p($input)) {
  123. U* y;
  124. SCM first, second;
  125. first = gh_car($input);
  126. second = gh_cdr($input);
  127. if (!CHECK(first))
  128. SWIG_exception(SWIG_TypeError,
  129. "map<" #T "," #U "> expected");
  130. y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
  131. $1 = std::make_pair(CONVERT_FROM(first),*y);
  132. } else {
  133. $1 = *(($&1_type)
  134. SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0));
  135. }
  136. }
  137. %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
  138. std::pair<T,U>* m),
  139. const pair<T,U>* (std::pair<T,U> temp,
  140. std::pair<T,U>* m) {
  141. if (gh_pair_p($input)) {
  142. U* y;
  143. SCM first, second;
  144. first = gh_car($input);
  145. second = gh_cdr($input);
  146. if (!CHECK(first))
  147. SWIG_exception(SWIG_TypeError,
  148. "map<" #T "," #U "> expected");
  149. y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
  150. temp = std::make_pair(CONVERT_FROM(first),*y);
  151. $1 = &temp;
  152. } else {
  153. $1 = ($1_ltype)
  154. SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
  155. }
  156. }
  157. %typemap(out) pair<T,U> {
  158. U* y = new U($1.second);
  159. SCM second = SWIG_NewPointerObj(y,$descriptor(U *), 1);
  160. $result = gh_cons(CONVERT_TO($1.first),second);
  161. }
  162. %typecheck(SWIG_TYPECHECK_PAIR) pair<T,U> {
  163. /* native pair? */
  164. if (gh_pair_p($input)) {
  165. U* y;
  166. SCM first = gh_car($input);
  167. SCM second = gh_cdr($input);
  168. if (CHECK(first) &&
  169. SWIG_ConvertPtr(second,(void**) &y,
  170. $descriptor(U *), 0) == 0) {
  171. $1 = 1;
  172. } else {
  173. $1 = 0;
  174. }
  175. } else {
  176. /* wrapped pair? */
  177. std::pair<T,U >* m;
  178. if (SWIG_ConvertPtr($input,(void **) &m,
  179. $&1_descriptor, 0) == 0)
  180. $1 = 1;
  181. else
  182. $1 = 0;
  183. }
  184. }
  185. %typecheck(SWIG_TYPECHECK_PAIR) const pair<T,U>&,
  186. const pair<T,U>* {
  187. /* native pair? */
  188. if (gh_pair_p($input)) {
  189. U* y;
  190. SCM first = gh_car($input);
  191. SCM second = gh_cdr($input);
  192. if (CHECK(first) &&
  193. SWIG_ConvertPtr(second,(void**) &y,
  194. $descriptor(U *), 0) == 0) {
  195. $1 = 1;
  196. } else {
  197. $1 = 0;
  198. }
  199. } else {
  200. /* wrapped pair? */
  201. std::pair<T,U >* m;
  202. if (SWIG_ConvertPtr($input,(void **) &m,
  203. $1_descriptor, 0) == 0)
  204. $1 = 1;
  205. else
  206. $1 = 0;
  207. }
  208. }
  209. pair();
  210. pair(T first, U second);
  211. pair(const pair& p);
  212. template <class U1, class U2> pair(const pair<U1, U2> &p);
  213. T first;
  214. U second;
  215. };
  216. %enddef
  217. %define specialize_std_pair_on_second(U,CHECK,CONVERT_FROM,CONVERT_TO)
  218. template<class T> struct pair<T,U> {
  219. %typemap(in) pair<T,U> (std::pair<T,U>* m) {
  220. if (gh_pair_p($input)) {
  221. T* x;
  222. SCM first, second;
  223. first = gh_car($input);
  224. second = gh_cdr($input);
  225. x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
  226. if (!CHECK(second))
  227. SWIG_exception(SWIG_TypeError,
  228. "map<" #T "," #U "> expected");
  229. $1 = std::make_pair(*x,CONVERT_FROM(second));
  230. } else {
  231. $1 = *(($&1_type)
  232. SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0));
  233. }
  234. }
  235. %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
  236. std::pair<T,U>* m),
  237. const pair<T,U>* (std::pair<T,U> temp,
  238. std::pair<T,U>* m) {
  239. if (gh_pair_p($input)) {
  240. T* x;
  241. SCM first, second;
  242. first = gh_car($input);
  243. second = gh_cdr($input);
  244. x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
  245. if (!CHECK(second))
  246. SWIG_exception(SWIG_TypeError,
  247. "map<" #T "," #U "> expected");
  248. temp = std::make_pair(*x,CONVERT_FROM(second));
  249. $1 = &temp;
  250. } else {
  251. $1 = ($1_ltype)
  252. SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
  253. }
  254. }
  255. %typemap(out) pair<T,U> {
  256. T* x = new T($1.first);
  257. SCM first = SWIG_NewPointerObj(x,$descriptor(T *), 1);
  258. $result = gh_cons(first,CONVERT_TO($1.second));
  259. }
  260. %typecheck(SWIG_TYPECHECK_PAIR) pair<T,U> {
  261. /* native pair? */
  262. if (gh_pair_p($input)) {
  263. T* x;
  264. SCM first = gh_car($input);
  265. SCM second = gh_cdr($input);
  266. if (SWIG_ConvertPtr(first,(void**) &x,
  267. $descriptor(T *), 0) == 0 &&
  268. CHECK(second)) {
  269. $1 = 1;
  270. } else {
  271. $1 = 0;
  272. }
  273. } else {
  274. /* wrapped pair? */
  275. std::pair<T,U >* m;
  276. if (SWIG_ConvertPtr($input,(void **) &m,
  277. $&1_descriptor, 0) == 0)
  278. $1 = 1;
  279. else
  280. $1 = 0;
  281. }
  282. }
  283. %typecheck(SWIG_TYPECHECK_PAIR) const pair<T,U>&,
  284. const pair<T,U>* {
  285. /* native pair? */
  286. if (gh_pair_p($input)) {
  287. T* x;
  288. SCM first = gh_car($input);
  289. SCM second = gh_cdr($input);
  290. if (SWIG_ConvertPtr(first,(void**) &x,
  291. $descriptor(T *), 0) == 0 &&
  292. CHECK(second)) {
  293. $1 = 1;
  294. } else {
  295. $1 = 0;
  296. }
  297. } else {
  298. /* wrapped pair? */
  299. std::pair<T,U >* m;
  300. if (SWIG_ConvertPtr($input,(void **) &m,
  301. $1_descriptor, 0) == 0)
  302. $1 = 1;
  303. else
  304. $1 = 0;
  305. }
  306. }
  307. pair();
  308. pair(T first, U second);
  309. pair(const pair& p);
  310. template <class U1, class U2> pair(const pair<U1, U2> &p);
  311. T first;
  312. U second;
  313. };
  314. %enddef
  315. %define specialize_std_pair_on_both(T,CHECK_T,CONVERT_T_FROM,CONVERT_T_TO,
  316. U,CHECK_U,CONVERT_U_FROM,CONVERT_U_TO)
  317. template<> struct pair<T,U> {
  318. %typemap(in) pair<T,U> (std::pair<T,U>* m) {
  319. if (gh_pair_p($input)) {
  320. SCM first, second;
  321. first = gh_car($input);
  322. second = gh_cdr($input);
  323. if (!CHECK_T(first) || !CHECK_U(second))
  324. SWIG_exception(SWIG_TypeError,
  325. "map<" #T "," #U "> expected");
  326. $1 = std::make_pair(CONVERT_T_FROM(first),
  327. CONVERT_U_FROM(second));
  328. } else {
  329. $1 = *(($&1_type)
  330. SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0));
  331. }
  332. }
  333. %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
  334. std::pair<T,U>* m),
  335. const pair<T,U>* (std::pair<T,U> temp,
  336. std::pair<T,U>* m) {
  337. if (gh_pair_p($input)) {
  338. SCM first, second;
  339. first = gh_car($input);
  340. second = gh_cdr($input);
  341. if (!CHECK_T(first) || !CHECK_U(second))
  342. SWIG_exception(SWIG_TypeError,
  343. "map<" #T "," #U "> expected");
  344. temp = std::make_pair(CONVERT_T_FROM(first),
  345. CONVERT_U_FROM(second));
  346. $1 = &temp;
  347. } else {
  348. $1 = ($1_ltype)
  349. SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
  350. }
  351. }
  352. %typemap(out) pair<T,U> {
  353. $result = gh_cons(CONVERT_T_TO($1.first),
  354. CONVERT_U_TO($1.second));
  355. }
  356. %typecheck(SWIG_TYPECHECK_PAIR) pair<T,U> {
  357. /* native pair? */
  358. if (gh_pair_p($input)) {
  359. SCM first = gh_car($input);
  360. SCM second = gh_cdr($input);
  361. if (CHECK_T(first) && CHECK_U(second)) {
  362. $1 = 1;
  363. } else {
  364. $1 = 0;
  365. }
  366. } else {
  367. /* wrapped pair? */
  368. std::pair<T,U >* m;
  369. if (SWIG_ConvertPtr($input,(void **) &m,
  370. $&1_descriptor, 0) == 0)
  371. $1 = 1;
  372. else
  373. $1 = 0;
  374. }
  375. }
  376. %typecheck(SWIG_TYPECHECK_PAIR) const pair<T,U>&,
  377. const pair<T,U>* {
  378. /* native pair? */
  379. if (gh_pair_p($input)) {
  380. SCM first = gh_car($input);
  381. SCM second = gh_cdr($input);
  382. if (CHECK_T(first) && CHECK_U(second)) {
  383. $1 = 1;
  384. } else {
  385. $1 = 0;
  386. }
  387. } else {
  388. /* wrapped pair? */
  389. std::pair<T,U >* m;
  390. if (SWIG_ConvertPtr($input,(void **) &m,
  391. $1_descriptor, 0) == 0)
  392. $1 = 1;
  393. else
  394. $1 = 0;
  395. }
  396. }
  397. pair();
  398. pair(T first, U second);
  399. pair(const pair& p);
  400. template <class U1, class U2> pair(const pair<U1, U2> &p);
  401. T first;
  402. U second;
  403. };
  404. %enddef
  405. specialize_std_pair_on_first(bool,gh_boolean_p,
  406. gh_scm2bool,SWIG_bool2scm);
  407. specialize_std_pair_on_first(int,gh_number_p,
  408. gh_scm2long,gh_long2scm);
  409. specialize_std_pair_on_first(short,gh_number_p,
  410. gh_scm2long,gh_long2scm);
  411. specialize_std_pair_on_first(long,gh_number_p,
  412. gh_scm2long,gh_long2scm);
  413. specialize_std_pair_on_first(unsigned int,gh_number_p,
  414. gh_scm2ulong,gh_ulong2scm);
  415. specialize_std_pair_on_first(unsigned short,gh_number_p,
  416. gh_scm2ulong,gh_ulong2scm);
  417. specialize_std_pair_on_first(unsigned long,gh_number_p,
  418. gh_scm2ulong,gh_ulong2scm);
  419. specialize_std_pair_on_first(double,gh_number_p,
  420. gh_scm2double,gh_double2scm);
  421. specialize_std_pair_on_first(float,gh_number_p,
  422. gh_scm2double,gh_double2scm);
  423. specialize_std_pair_on_first(std::string,gh_string_p,
  424. SWIG_scm2string,SWIG_string2scm);
  425. specialize_std_pair_on_second(bool,gh_boolean_p,
  426. gh_scm2bool,SWIG_bool2scm);
  427. specialize_std_pair_on_second(int,gh_number_p,
  428. gh_scm2long,gh_long2scm);
  429. specialize_std_pair_on_second(short,gh_number_p,
  430. gh_scm2long,gh_long2scm);
  431. specialize_std_pair_on_second(long,gh_number_p,
  432. gh_scm2long,gh_long2scm);
  433. specialize_std_pair_on_second(unsigned int,gh_number_p,
  434. gh_scm2ulong,gh_ulong2scm);
  435. specialize_std_pair_on_second(unsigned short,gh_number_p,
  436. gh_scm2ulong,gh_ulong2scm);
  437. specialize_std_pair_on_second(unsigned long,gh_number_p,
  438. gh_scm2ulong,gh_ulong2scm);
  439. specialize_std_pair_on_second(double,gh_number_p,
  440. gh_scm2double,gh_double2scm);
  441. specialize_std_pair_on_second(float,gh_number_p,
  442. gh_scm2double,gh_double2scm);
  443. specialize_std_pair_on_second(std::string,gh_string_p,
  444. SWIG_scm2string,SWIG_string2scm);
  445. specialize_std_pair_on_both(bool,gh_boolean_p,
  446. gh_scm2bool,SWIG_bool2scm,
  447. bool,gh_boolean_p,
  448. gh_scm2bool,SWIG_bool2scm);
  449. specialize_std_pair_on_both(bool,gh_boolean_p,
  450. gh_scm2bool,SWIG_bool2scm,
  451. int,gh_number_p,
  452. gh_scm2long,gh_long2scm);
  453. specialize_std_pair_on_both(bool,gh_boolean_p,
  454. gh_scm2bool,SWIG_bool2scm,
  455. short,gh_number_p,
  456. gh_scm2long,gh_long2scm);
  457. specialize_std_pair_on_both(bool,gh_boolean_p,
  458. gh_scm2bool,SWIG_bool2scm,
  459. long,gh_number_p,
  460. gh_scm2long,gh_long2scm);
  461. specialize_std_pair_on_both(bool,gh_boolean_p,
  462. gh_scm2bool,SWIG_bool2scm,
  463. unsigned int,gh_number_p,
  464. gh_scm2ulong,gh_ulong2scm);
  465. specialize_std_pair_on_both(bool,gh_boolean_p,
  466. gh_scm2bool,SWIG_bool2scm,
  467. unsigned short,gh_number_p,
  468. gh_scm2ulong,gh_ulong2scm);
  469. specialize_std_pair_on_both(bool,gh_boolean_p,
  470. gh_scm2bool,SWIG_bool2scm,
  471. unsigned long,gh_number_p,
  472. gh_scm2ulong,gh_ulong2scm);
  473. specialize_std_pair_on_both(bool,gh_boolean_p,
  474. gh_scm2bool,SWIG_bool2scm,
  475. double,gh_number_p,
  476. gh_scm2double,gh_double2scm);
  477. specialize_std_pair_on_both(bool,gh_boolean_p,
  478. gh_scm2bool,SWIG_bool2scm,
  479. float,gh_number_p,
  480. gh_scm2double,gh_double2scm);
  481. specialize_std_pair_on_both(bool,gh_boolean_p,
  482. gh_scm2bool,SWIG_bool2scm,
  483. std::string,gh_string_p,
  484. SWIG_scm2string,SWIG_string2scm);
  485. specialize_std_pair_on_both(int,gh_number_p,
  486. gh_scm2long,gh_long2scm,
  487. bool,gh_boolean_p,
  488. gh_scm2bool,SWIG_bool2scm);
  489. specialize_std_pair_on_both(int,gh_number_p,
  490. gh_scm2long,gh_long2scm,
  491. int,gh_number_p,
  492. gh_scm2long,gh_long2scm);
  493. specialize_std_pair_on_both(int,gh_number_p,
  494. gh_scm2long,gh_long2scm,
  495. short,gh_number_p,
  496. gh_scm2long,gh_long2scm);
  497. specialize_std_pair_on_both(int,gh_number_p,
  498. gh_scm2long,gh_long2scm,
  499. long,gh_number_p,
  500. gh_scm2long,gh_long2scm);
  501. specialize_std_pair_on_both(int,gh_number_p,
  502. gh_scm2long,gh_long2scm,
  503. unsigned int,gh_number_p,
  504. gh_scm2ulong,gh_ulong2scm);
  505. specialize_std_pair_on_both(int,gh_number_p,
  506. gh_scm2long,gh_long2scm,
  507. unsigned short,gh_number_p,
  508. gh_scm2ulong,gh_ulong2scm);
  509. specialize_std_pair_on_both(int,gh_number_p,
  510. gh_scm2long,gh_long2scm,
  511. unsigned long,gh_number_p,
  512. gh_scm2ulong,gh_ulong2scm);
  513. specialize_std_pair_on_both(int,gh_number_p,
  514. gh_scm2long,gh_long2scm,
  515. double,gh_number_p,
  516. gh_scm2double,gh_double2scm);
  517. specialize_std_pair_on_both(int,gh_number_p,
  518. gh_scm2long,gh_long2scm,
  519. float,gh_number_p,
  520. gh_scm2double,gh_double2scm);
  521. specialize_std_pair_on_both(int,gh_number_p,
  522. gh_scm2long,gh_long2scm,
  523. std::string,gh_string_p,
  524. SWIG_scm2string,SWIG_string2scm);
  525. specialize_std_pair_on_both(short,gh_number_p,
  526. gh_scm2long,gh_long2scm,
  527. bool,gh_boolean_p,
  528. gh_scm2bool,SWIG_bool2scm);
  529. specialize_std_pair_on_both(short,gh_number_p,
  530. gh_scm2long,gh_long2scm,
  531. int,gh_number_p,
  532. gh_scm2long,gh_long2scm);
  533. specialize_std_pair_on_both(short,gh_number_p,
  534. gh_scm2long,gh_long2scm,
  535. short,gh_number_p,
  536. gh_scm2long,gh_long2scm);
  537. specialize_std_pair_on_both(short,gh_number_p,
  538. gh_scm2long,gh_long2scm,
  539. long,gh_number_p,
  540. gh_scm2long,gh_long2scm);
  541. specialize_std_pair_on_both(short,gh_number_p,
  542. gh_scm2long,gh_long2scm,
  543. unsigned int,gh_number_p,
  544. gh_scm2ulong,gh_ulong2scm);
  545. specialize_std_pair_on_both(short,gh_number_p,
  546. gh_scm2long,gh_long2scm,
  547. unsigned short,gh_number_p,
  548. gh_scm2ulong,gh_ulong2scm);
  549. specialize_std_pair_on_both(short,gh_number_p,
  550. gh_scm2long,gh_long2scm,
  551. unsigned long,gh_number_p,
  552. gh_scm2ulong,gh_ulong2scm);
  553. specialize_std_pair_on_both(short,gh_number_p,
  554. gh_scm2long,gh_long2scm,
  555. double,gh_number_p,
  556. gh_scm2double,gh_double2scm);
  557. specialize_std_pair_on_both(short,gh_number_p,
  558. gh_scm2long,gh_long2scm,
  559. float,gh_number_p,
  560. gh_scm2double,gh_double2scm);
  561. specialize_std_pair_on_both(short,gh_number_p,
  562. gh_scm2long,gh_long2scm,
  563. std::string,gh_string_p,
  564. SWIG_scm2string,SWIG_string2scm);
  565. specialize_std_pair_on_both(long,gh_number_p,
  566. gh_scm2long,gh_long2scm,
  567. bool,gh_boolean_p,
  568. gh_scm2bool,SWIG_bool2scm);
  569. specialize_std_pair_on_both(long,gh_number_p,
  570. gh_scm2long,gh_long2scm,
  571. int,gh_number_p,
  572. gh_scm2long,gh_long2scm);
  573. specialize_std_pair_on_both(long,gh_number_p,
  574. gh_scm2long,gh_long2scm,
  575. short,gh_number_p,
  576. gh_scm2long,gh_long2scm);
  577. specialize_std_pair_on_both(long,gh_number_p,
  578. gh_scm2long,gh_long2scm,
  579. long,gh_number_p,
  580. gh_scm2long,gh_long2scm);
  581. specialize_std_pair_on_both(long,gh_number_p,
  582. gh_scm2long,gh_long2scm,
  583. unsigned int,gh_number_p,
  584. gh_scm2ulong,gh_ulong2scm);
  585. specialize_std_pair_on_both(long,gh_number_p,
  586. gh_scm2long,gh_long2scm,
  587. unsigned short,gh_number_p,
  588. gh_scm2ulong,gh_ulong2scm);
  589. specialize_std_pair_on_both(long,gh_number_p,
  590. gh_scm2long,gh_long2scm,
  591. unsigned long,gh_number_p,
  592. gh_scm2ulong,gh_ulong2scm);
  593. specialize_std_pair_on_both(long,gh_number_p,
  594. gh_scm2long,gh_long2scm,
  595. double,gh_number_p,
  596. gh_scm2double,gh_double2scm);
  597. specialize_std_pair_on_both(long,gh_number_p,
  598. gh_scm2long,gh_long2scm,
  599. float,gh_number_p,
  600. gh_scm2double,gh_double2scm);
  601. specialize_std_pair_on_both(long,gh_number_p,
  602. gh_scm2long,gh_long2scm,
  603. std::string,gh_string_p,
  604. SWIG_scm2string,SWIG_string2scm);
  605. specialize_std_pair_on_both(unsigned int,gh_number_p,
  606. gh_scm2ulong,gh_ulong2scm,
  607. bool,gh_boolean_p,
  608. gh_scm2bool,SWIG_bool2scm);
  609. specialize_std_pair_on_both(unsigned int,gh_number_p,
  610. gh_scm2ulong,gh_ulong2scm,
  611. int,gh_number_p,
  612. gh_scm2long,gh_long2scm);
  613. specialize_std_pair_on_both(unsigned int,gh_number_p,
  614. gh_scm2ulong,gh_ulong2scm,
  615. short,gh_number_p,
  616. gh_scm2long,gh_long2scm);
  617. specialize_std_pair_on_both(unsigned int,gh_number_p,
  618. gh_scm2ulong,gh_ulong2scm,
  619. long,gh_number_p,
  620. gh_scm2long,gh_long2scm);
  621. specialize_std_pair_on_both(unsigned int,gh_number_p,
  622. gh_scm2ulong,gh_ulong2scm,
  623. unsigned int,gh_number_p,
  624. gh_scm2ulong,gh_ulong2scm);
  625. specialize_std_pair_on_both(unsigned int,gh_number_p,
  626. gh_scm2ulong,gh_ulong2scm,
  627. unsigned short,gh_number_p,
  628. gh_scm2ulong,gh_ulong2scm);
  629. specialize_std_pair_on_both(unsigned int,gh_number_p,
  630. gh_scm2ulong,gh_ulong2scm,
  631. unsigned long,gh_number_p,
  632. gh_scm2ulong,gh_ulong2scm);
  633. specialize_std_pair_on_both(unsigned int,gh_number_p,
  634. gh_scm2ulong,gh_ulong2scm,
  635. double,gh_number_p,
  636. gh_scm2double,gh_double2scm);
  637. specialize_std_pair_on_both(unsigned int,gh_number_p,
  638. gh_scm2ulong,gh_ulong2scm,
  639. float,gh_number_p,
  640. gh_scm2double,gh_double2scm);
  641. specialize_std_pair_on_both(unsigned int,gh_number_p,
  642. gh_scm2ulong,gh_ulong2scm,
  643. std::string,gh_string_p,
  644. SWIG_scm2string,SWIG_string2scm);
  645. specialize_std_pair_on_both(unsigned short,gh_number_p,
  646. gh_scm2ulong,gh_ulong2scm,
  647. bool,gh_boolean_p,
  648. gh_scm2bool,SWIG_bool2scm);
  649. specialize_std_pair_on_both(unsigned short,gh_number_p,
  650. gh_scm2ulong,gh_ulong2scm,
  651. int,gh_number_p,
  652. gh_scm2long,gh_long2scm);
  653. specialize_std_pair_on_both(unsigned short,gh_number_p,
  654. gh_scm2ulong,gh_ulong2scm,
  655. short,gh_number_p,
  656. gh_scm2long,gh_long2scm);
  657. specialize_std_pair_on_both(unsigned short,gh_number_p,
  658. gh_scm2ulong,gh_ulong2scm,
  659. long,gh_number_p,
  660. gh_scm2long,gh_long2scm);
  661. specialize_std_pair_on_both(unsigned short,gh_number_p,
  662. gh_scm2ulong,gh_ulong2scm,
  663. unsigned int,gh_number_p,
  664. gh_scm2ulong,gh_ulong2scm);
  665. specialize_std_pair_on_both(unsigned short,gh_number_p,
  666. gh_scm2ulong,gh_ulong2scm,
  667. unsigned short,gh_number_p,
  668. gh_scm2ulong,gh_ulong2scm);
  669. specialize_std_pair_on_both(unsigned short,gh_number_p,
  670. gh_scm2ulong,gh_ulong2scm,
  671. unsigned long,gh_number_p,
  672. gh_scm2ulong,gh_ulong2scm);
  673. specialize_std_pair_on_both(unsigned short,gh_number_p,
  674. gh_scm2ulong,gh_ulong2scm,
  675. double,gh_number_p,
  676. gh_scm2double,gh_double2scm);
  677. specialize_std_pair_on_both(unsigned short,gh_number_p,
  678. gh_scm2ulong,gh_ulong2scm,
  679. float,gh_number_p,
  680. gh_scm2double,gh_double2scm);
  681. specialize_std_pair_on_both(unsigned short,gh_number_p,
  682. gh_scm2ulong,gh_ulong2scm,
  683. std::string,gh_string_p,
  684. SWIG_scm2string,SWIG_string2scm);
  685. specialize_std_pair_on_both(unsigned long,gh_number_p,
  686. gh_scm2ulong,gh_ulong2scm,
  687. bool,gh_boolean_p,
  688. gh_scm2bool,SWIG_bool2scm);
  689. specialize_std_pair_on_both(unsigned long,gh_number_p,
  690. gh_scm2ulong,gh_ulong2scm,
  691. int,gh_number_p,
  692. gh_scm2long,gh_long2scm);
  693. specialize_std_pair_on_both(unsigned long,gh_number_p,
  694. gh_scm2ulong,gh_ulong2scm,
  695. short,gh_number_p,
  696. gh_scm2long,gh_long2scm);
  697. specialize_std_pair_on_both(unsigned long,gh_number_p,
  698. gh_scm2ulong,gh_ulong2scm,
  699. long,gh_number_p,
  700. gh_scm2long,gh_long2scm);
  701. specialize_std_pair_on_both(unsigned long,gh_number_p,
  702. gh_scm2ulong,gh_ulong2scm,
  703. unsigned int,gh_number_p,
  704. gh_scm2ulong,gh_ulong2scm);
  705. specialize_std_pair_on_both(unsigned long,gh_number_p,
  706. gh_scm2ulong,gh_ulong2scm,
  707. unsigned short,gh_number_p,
  708. gh_scm2ulong,gh_ulong2scm);
  709. specialize_std_pair_on_both(unsigned long,gh_number_p,
  710. gh_scm2ulong,gh_ulong2scm,
  711. unsigned long,gh_number_p,
  712. gh_scm2ulong,gh_ulong2scm);
  713. specialize_std_pair_on_both(unsigned long,gh_number_p,
  714. gh_scm2ulong,gh_ulong2scm,
  715. double,gh_number_p,
  716. gh_scm2double,gh_double2scm);
  717. specialize_std_pair_on_both(unsigned long,gh_number_p,
  718. gh_scm2ulong,gh_ulong2scm,
  719. float,gh_number_p,
  720. gh_scm2double,gh_double2scm);
  721. specialize_std_pair_on_both(unsigned long,gh_number_p,
  722. gh_scm2ulong,gh_ulong2scm,
  723. std::string,gh_string_p,
  724. SWIG_scm2string,SWIG_string2scm);
  725. specialize_std_pair_on_both(double,gh_number_p,
  726. gh_scm2double,gh_double2scm,
  727. bool,gh_boolean_p,
  728. gh_scm2bool,SWIG_bool2scm);
  729. specialize_std_pair_on_both(double,gh_number_p,
  730. gh_scm2double,gh_double2scm,
  731. int,gh_number_p,
  732. gh_scm2long,gh_long2scm);
  733. specialize_std_pair_on_both(double,gh_number_p,
  734. gh_scm2double,gh_double2scm,
  735. short,gh_number_p,
  736. gh_scm2long,gh_long2scm);
  737. specialize_std_pair_on_both(double,gh_number_p,
  738. gh_scm2double,gh_double2scm,
  739. long,gh_number_p,
  740. gh_scm2long,gh_long2scm);
  741. specialize_std_pair_on_both(double,gh_number_p,
  742. gh_scm2double,gh_double2scm,
  743. unsigned int,gh_number_p,
  744. gh_scm2ulong,gh_ulong2scm);
  745. specialize_std_pair_on_both(double,gh_number_p,
  746. gh_scm2double,gh_double2scm,
  747. unsigned short,gh_number_p,
  748. gh_scm2ulong,gh_ulong2scm);
  749. specialize_std_pair_on_both(double,gh_number_p,
  750. gh_scm2double,gh_double2scm,
  751. unsigned long,gh_number_p,
  752. gh_scm2ulong,gh_ulong2scm);
  753. specialize_std_pair_on_both(double,gh_number_p,
  754. gh_scm2double,gh_double2scm,
  755. double,gh_number_p,
  756. gh_scm2double,gh_double2scm);
  757. specialize_std_pair_on_both(double,gh_number_p,
  758. gh_scm2double,gh_double2scm,
  759. float,gh_number_p,
  760. gh_scm2double,gh_double2scm);
  761. specialize_std_pair_on_both(double,gh_number_p,
  762. gh_scm2double,gh_double2scm,
  763. std::string,gh_string_p,
  764. SWIG_scm2string,SWIG_string2scm);
  765. specialize_std_pair_on_both(float,gh_number_p,
  766. gh_scm2double,gh_double2scm,
  767. bool,gh_boolean_p,
  768. gh_scm2bool,SWIG_bool2scm);
  769. specialize_std_pair_on_both(float,gh_number_p,
  770. gh_scm2double,gh_double2scm,
  771. int,gh_number_p,
  772. gh_scm2long,gh_long2scm);
  773. specialize_std_pair_on_both(float,gh_number_p,
  774. gh_scm2double,gh_double2scm,
  775. short,gh_number_p,
  776. gh_scm2long,gh_long2scm);
  777. specialize_std_pair_on_both(float,gh_number_p,
  778. gh_scm2double,gh_double2scm,
  779. long,gh_number_p,
  780. gh_scm2long,gh_long2scm);
  781. specialize_std_pair_on_both(float,gh_number_p,
  782. gh_scm2double,gh_double2scm,
  783. unsigned int,gh_number_p,
  784. gh_scm2ulong,gh_ulong2scm);
  785. specialize_std_pair_on_both(float,gh_number_p,
  786. gh_scm2double,gh_double2scm,
  787. unsigned short,gh_number_p,
  788. gh_scm2ulong,gh_ulong2scm);
  789. specialize_std_pair_on_both(float,gh_number_p,
  790. gh_scm2double,gh_double2scm,
  791. unsigned long,gh_number_p,
  792. gh_scm2ulong,gh_ulong2scm);
  793. specialize_std_pair_on_both(float,gh_number_p,
  794. gh_scm2double,gh_double2scm,
  795. double,gh_number_p,
  796. gh_scm2double,gh_double2scm);
  797. specialize_std_pair_on_both(float,gh_number_p,
  798. gh_scm2double,gh_double2scm,
  799. float,gh_number_p,
  800. gh_scm2double,gh_double2scm);
  801. specialize_std_pair_on_both(float,gh_number_p,
  802. gh_scm2double,gh_double2scm,
  803. std::string,gh_string_p,
  804. SWIG_scm2string,SWIG_string2scm);
  805. specialize_std_pair_on_both(std::string,gh_string_p,
  806. SWIG_scm2string,SWIG_string2scm,
  807. bool,gh_boolean_p,
  808. gh_scm2bool,SWIG_bool2scm);
  809. specialize_std_pair_on_both(std::string,gh_string_p,
  810. SWIG_scm2string,SWIG_string2scm,
  811. int,gh_number_p,
  812. gh_scm2long,gh_long2scm);
  813. specialize_std_pair_on_both(std::string,gh_string_p,
  814. SWIG_scm2string,SWIG_string2scm,
  815. short,gh_number_p,
  816. gh_scm2long,gh_long2scm);
  817. specialize_std_pair_on_both(std::string,gh_string_p,
  818. SWIG_scm2string,SWIG_string2scm,
  819. long,gh_number_p,
  820. gh_scm2long,gh_long2scm);
  821. specialize_std_pair_on_both(std::string,gh_string_p,
  822. SWIG_scm2string,SWIG_string2scm,
  823. unsigned int,gh_number_p,
  824. gh_scm2ulong,gh_ulong2scm);
  825. specialize_std_pair_on_both(std::string,gh_string_p,
  826. SWIG_scm2string,SWIG_string2scm,
  827. unsigned short,gh_number_p,
  828. gh_scm2ulong,gh_ulong2scm);
  829. specialize_std_pair_on_both(std::string,gh_string_p,
  830. SWIG_scm2string,SWIG_string2scm,
  831. unsigned long,gh_number_p,
  832. gh_scm2ulong,gh_ulong2scm);
  833. specialize_std_pair_on_both(std::string,gh_string_p,
  834. SWIG_scm2string,SWIG_string2scm,
  835. double,gh_number_p,
  836. gh_scm2double,gh_double2scm);
  837. specialize_std_pair_on_both(std::string,gh_string_p,
  838. SWIG_scm2string,SWIG_string2scm,
  839. float,gh_number_p,
  840. gh_scm2double,gh_double2scm);
  841. specialize_std_pair_on_both(std::string,gh_string_p,
  842. SWIG_scm2string,SWIG_string2scm,
  843. std::string,gh_string_p,
  844. SWIG_scm2string,SWIG_string2scm);
  845. }