Cython std ::两个指针对,期望一个标识符或文字

lin*_*llo 10 c++ python pointers cython

为什么在Cython中可以包装

std::pair<int, Foo*> myPair;
Run Code Online (Sandbox Code Playgroud)

但不是

std::pair<Foo*,Bar*> myPair;
Run Code Online (Sandbox Code Playgroud)

特别是,在Cython中包装std::pair如下:

pair[int, Foo*]
Run Code Online (Sandbox Code Playgroud)

并且工作顺利,但当第一个元素也是一个指针我有问题:

pair[Foo*,Bar*] myPair2
Run Code Online (Sandbox Code Playgroud)

我越来越

pair[Foo*,Bar*] myPair2
        ^
------------------------------------------------------------
test.pyx:50:17: Expected an identifier or literal
Run Code Online (Sandbox Code Playgroud)

我在Linux上使用Cython 0.17.1,g ++ 4.4

Yak*_*ont 9

这些类型pair定义中的处理方式相同; 它可能是[]语法的一般限制.您可以尝试使用typedef解决它:ctypedef Foo* Foo_pointer

复制粘贴@JFSebastian的评论,以便可以将此问题标记为已回答(希望清理未回答的问题列表 - 已经过了一个月!)