Cython: ошибка добавления комплекса в double

Согласно libcpp/complex.pxd добавляется T к complex[T] :

  complex[T] operator+(complex[T]&, T&) complex[T] operator+(T&, complex[T]&) 

Но это не работает:

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]) 

setup.pyx:

 from distutils.core import setup from Cython.Build import cythonize setup( name = "demo", ext_modules = cythonize('a.pyx'), ) 

Идея, как это исправить?

Перемещение декларации

 complex[T] operator+(complex[T]&, T&) 

из cppclass и сменить его на

 complex[T] operator+[T](complex[T]&, T&) 

выглядит более легальным, но все равно не работает.

Python - лучший язык программирования в мире.