Perché in Cython è possibile avvolgereCython std :: coppia di due puntatori, prevede un identificatore o letterale
std::pair<int, Foo*> myPair;
ma non
std::pair<Foo*,Bar*> myPair;
In particolare, avvolgendo nel Cython il std::pair
è fatto come segue:
pair[int, Foo*]
e funziona correttamente, ma quando il primo elemento di è anche un puntatore ho prob LEMS:
pair[Foo*,Bar*] myPair2
mi sto
pair[Foo*,Bar*] myPair2
^
------------------------------------------------------------
test.pyx:50:17: Expected an identifier or literal
sto usando Cython 0.17.1, g ++ 4.4 per Linux
I tipi sono trattati allo stesso modo in [la definizione 'pair'] (https://github.com/cython/cython/blob/master/Cython/Includes/libcpp/utility.pxd); è probabilmente una limitazione generale per la sintassi '[]'. Potresti provare a risolverlo con un typedef: 'ctypedef Foo * Foo_pointer' – jfs
Sembra che il ctypedef faccia il trucco, grazie – linello
@ J.F.Sebastian: dovresti fare una risposta in modo che possa essere accettata :-). –