私はC++プログラムをビルドしてCythonで入手していますが、ここではC++ 11を入手しようとしていますが、確かに動作しません。ここでC++ 11配列とCythonのインターフェイス
は私.pxdです:
cdef extern from "<array>" namespace "std" nogil :
cdef cppclass array[T, size_t]:
ctypedef T value_type
cppclass iterator:
T& operator*()
iterator operator++()
iterator operator--()
iterator operator+(size_t)
iterator operator-(size_t)
bint operator==(iterator)
bint operator!=(iterator)
bint operator<(iterator)
bint operator>(iterator)
bint operator<=(iterator)
bint operator>=(iterator)
T& operator[](size_t)
array() except +
array(array&) except +
は、このファイルのほとんどは、「vector.pxd」から適応ですが、C++ 11 array
がそれを必要としないので、私はアロケータを削除しました。私はsize_t
を第2のテンプレート引数として使用しましたが、わかりません。
問題は私が行うとき、次のとおりです。
from array11 cimport array
cdef array[int, 5] test
コンパイルするとき、私は、取得:
未知のタイプをテンプレート引数
に私が行う場合:
from array11 cimport array
cdef array[int, 5] * test = new array[int, 5]()
私は取得:
new演算子はC++クラス
私が間違っているのかについての任意のアイデアを適用することができますか?
ありがとうございます!
cythonは非型テンプレートをサポートしていますか? – AndyG
正しい質問かもしれません! –
@AndyGいいえ、それはノンタイプのテンプレートをサポートしていません – DavidW