Почему в Cython можно завернуть
std::pair<int, Foo*> myPair;
но нет
std::pair<Foo*,Bar*> myPair;
В частности, упаковка в Cython std::pair
делается следующим образом:
pair[int, Foo*]
и работает плавно, но когда первый элемент также является указателем, у меня возникают проблемы:
pair[Foo*,Bar*] myPair2
я собираюсь
pair[Foo*,Bar*] myPair2
^
------------------------------------------------------------
test.pyx:50:17: Expected an identifier or literal
Я использую Cython 0.17.1, g ++ 4.4 на Linux
Типы обрабатываются одинаково в pair
определение; это, вероятно, общее ограничение для []
синтаксис. Вы можете попытаться обойти это с помощью typedef: ctypedef Foo* Foo_pointer
Копия вставлена из комментария @ J.F.Sebastian, чтобы этот вопрос можно было пометить как ответивший (надеюсь, чтобы очистить список оставшихся без ответа вопросов — это был месяц!)
Других решений пока нет …