這個問題已經在這裏找到答案:爲什麼C++中沒有指定複雜的整數?
Why does C++ mandate that complex only be instantiated for float, double, or long double?
不過,我沒有看到答案有多麼有效。公認的原因是:
你不能正確地實現 整數的許多std :: complex操作。例如,
模板 T abs(const complex &z);
一個複雜 不能有T =長的返回值...
不過,我看不出有任何理由不。
例如,如果我有1234567 + 7654321i
,那麼abs()約爲7753243.557。整數結果(如7753243或7753244)可能非常有用。只要機制是一致的,那麼給出的結果並不重要。 (就像我們接受5/3 = 1一樣)。
任何人都可以提供任何想法,爲什麼複雜的整數不可用?
你的意思是[高斯整數](http://en.wikipedia.org/wiki/Gaussian_integer)? – 2014-11-05 20:57:14
IDK肯定,但我不清楚你期望'abs(std :: complex(3,5))'做什麼。在任何情況下,你都可以編寫自己的類來實現你想要做的任何事情。 –
2014-11-05 21:01:02
請參閱http://stackoverflow.com/questions/11108743/一個很好的解釋 – uesp 2014-11-05 21:02:24