Когда для Swig необходима карта типов? - PullRequest
1 голос
/ 19 июля 2011

У меня есть такая функция в .i файле:

t_demo * t struct_new();

Кажется, мне не нужны никакие наборы карт, это просто работает. После конвертации я могу использовать его напрямую:

use test;

$a = test::struct_new;

Когда для swig необходима карта типов?

1 Ответ

0 голосов
/ 19 июля 2011

Например, мы можем создать карту типов "out" для t_demo и вернуть хеш, заполненный выбранными членами этой структуры:

%typemap(out) t_demo {
  HV* tmp = newHV();

  SV* t_data = newSViv($1.int_field1);
  hv_store(tmp, "int_field1", 4, t_data, 0);

  $result = sv_2mortal(newRV_noinc((SV*) tmp));
  argvi++;
}

Многие другие случаи описаны в руководстве по swig.

...