我想將整數添加到complex<double>
但我不能。下面是相關的代碼部分:無法將整數添加到std :: complex <double>
using dcomplex = std::complex<double>;
dcomplex j = dcomplex(0,1);
// dcomplex r = 1+j;//this line is not compiling
dcomplex r = 1.0+j;//ok
我明白爲什麼j+=1
不編譯,因爲超載內complex
operator+=
並沒有隱式轉換int->double
。但是operator+
在複雜內部沒有超載(我沒有在那裏找到它)。所以它在其他地方超載(在哪裏?我找不到它),並且因爲int
應該隱式轉換爲double
。但事實並非如此。爲什麼?
_「沒有隱式轉換int-> double」_你確定嗎? –
[奇怪的相關](http://stackoverflow.com/q/32944584/560648) –