SWIG изменить тип поля определенного типа для C # - PullRequest
0 голосов
/ 03 сентября 2018

Допустим, у меня есть это в C / C ++:

struct MyType {
   int foo;
   long other;   
};

Я хочу изменить "int" ТОЛЬКО поля "foo" на bool в SWIG! Как я могу это сделать?

Я не хочу менять исходный источник. Обычно, если бы это были мои источники, я бы просто перешел на bool!

1 Ответ

0 голосов
/ 04 сентября 2018

Вы можете использовать %apply, чтобы использовать bool карты типов на int foo для достижения того, что вы хотите:

%module test
%apply bool { int foo };
%inline %{
struct MyType {
   int foo;
};
%}

В других более запутанных сценариях вы должны написать свои собственные таблицы типов для поддержки этого, но, поскольку bool и int неявно конвертируемы в C ++, это скомпилирует и будет отлично работать из коробки.

...