Selon libcpp/complex.pxd
ajoutant T
-complex[T]
est pris en charge:Cython: erreur en ajoutant complexe [double] pour doubler
complex[T] operator+(complex[T]&, T&)
complex[T] operator+(T&, complex[T]&)
Mais il ne fonctionne pas:
a.pyx:
# distutils: language = c++
cimport libcpp.complex
def f():
libcpp.complex.complex[double](1,2) + libcpp.complex.complex[double](2,3) # ok
libcpp.complex.complex[double](1,2) + 5. # Cannot assign type 'double' to 'complex[double]'
5. + libcpp.complex.complex[double](1,2) # Invalid operand types for '+' (double; complex[double])
configuration.pyx:
À quelle idée faire?
déclaration de déménagement
complex[T] operator+(complex[T]&, T&)
sur cppclass
et changer à
complex[T] operator+[T](complex[T]&, T&)
ressemble plus legimate mais ne fonctionne toujours pas.
Je suis d'accord que c'est cassé. Je ne pense pas qu'il y ait un workround réalisable. Peut-être soumettre un rapport de bug à https://github.com/cython/cython/issues? – DavidW
@DavidW Terminé, problème [# 1643] (https://github.com/cython/cython/issues/1643) – axil
@AntonyHatchkins C'est la première fois que quelqu'un le fait quand je lui suggère de soumettre un rapport de bug :)! – DavidW