2017-03-27 1 views
0

complex[T]-T이 지원되는 추가 libcpp/complex.pxd에 따르면 두 배로사이 썬은 :</p> <pre><code>complex[T] operator+(complex[T]&, T&) complex[T] operator+(T&, complex[T]&) </code></pre> <p>을하지만이 작동하지 않습니다 : 오류 [더블] 복잡한 추가는

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 :

어떻게 생각 하나?

작동하지 않습니다 아직 cppclass에서 선언을

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

을 이동 및

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

더 legimate 보이는

로 변경하지만.

+0

고장났다는데 동의합니다. 나는 workable workround가 있다고 생각하지 않는다. 아마도 https://github.com/cython/cython/issues에 버그 보고서를 제출 하시겠습니까? – DavidW

+0

@DavidW 완료, [# 1643] (https://github.com/cython/cython/issues/1643) – axil

+0

@AntonyHatchkins 발급 누가 버그 리포트를 제출할 것을 제안했을 때 처음으로 누구나 완료했습니다. :)! – DavidW

답변

2

나는 그것을 작동 시켰습니다. 질문과 cimport *

의 DavidW의 아이디어 @ 제안 그것은

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

로 변경 cppclass 정의 중

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

를 이동 의 조합입니다 https://github.com/cython/cython/issues/1643

티켓 사이 썬보기