У меня есть следующий файл интерфейса SWIG (все в одном)
pyhello. я
Код: Выделить всё
%module pyhello
%{
#include
// Inline definition of my C++ class
class MyInt
{
public:
MyInt(int n) : _n(n) {}
static MyInt* create(int n) { return new MyInt(n); }
int get() const { return _n; }
private:
int _n;
};
%}
%typemap(out) MyInt, MyInt&
{
std::cout print(i1 + i2)
Traceback (most recent call last):
File "", line 1, in
TypeError: unsupported operand type(s) for +: 'int' and 'MyInt'
- Почему вызов конструктора MyInt создает недопустимый MyInt
объект в Python (мы видим, что карта типов используется для получения
целого числа, а затем целое число оборачивается в вымышленный объект MyInt
python)? Есть ли ошибка в SWIG? - Есть ли способ создать карту типов (выходную) для MyInt, чтобы
чтобы команда create возвращала собственные целые числа при наличии конструктор, который продолжает создавать прокси-объекты (как если бы не былоКод: Выделить всё
MyInt
mapmap)?
Подробнее здесь: https://stackoverflow.com/questions/790 ... sing-a-typ