Cython std :: пара двух указателей, ожидается идентификатор или литерал

Почему в 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

8

Решение

Типы обрабатываются одинаково в pair определение; это, вероятно, общее ограничение для [] синтаксис. Вы можете попытаться обойти это с помощью typedef: ctypedef Foo* Foo_pointer

Копия вставлена ​​из комментария @ J.F.Sebastian, чтобы этот вопрос можно было пометить как ответивший (надеюсь, чтобы очистить список оставшихся без ответа вопросов — это был месяц!)

6

Другие решения

Других решений пока нет …