Я пытаюсь обернуть код C ++ с помощью SWIG3.0. У меня есть класс внутри пространства имен с 2d массивом. Мне нужно получить доступ к значениям. У меня есть что-то вроде этого:
//example.cpp
namespace n {
class c {
double x[2][2] = {
{1, 2},
{3, 4}
};
};
};
Я попробовал это в моем файле интерфейса Swig:
//interface.i
...
%typemap(out) double n::c::x[2][2] {
int i,j;
for (i = 0; i < $dim0; i++)
for (j = 0; j < $dim1; j++) {
$result[i][j] = *($1+$dim1*i+j);
}
}
...
Когда я пытаюсь получить доступ к значениям, я получаю следующую ошибку:
<Swig Object of type 'double (*)[2]' at 0x7f4295431fc0>
>>> x[0][0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'SwigPyObject' object is not subscriptable
Чего мне не хватает?