Lou*_*uen 20 c++ std complex-numbers
似乎有一个问题,使用C++中的文字istd::complex.
请考虑以下代码:
std::complex<double> a = -1.0i * 42.0;
std::complex<double> b = a + 1.0i;
Run Code Online (Sandbox Code Playgroud)
第二行无法编译:
error: no match for ‘operator+’ (operand types are ‘std::complex<double>’ and ‘__complex__ double’)
在函数调用中使用复杂文字时也会出现这种情况,例如
std::exp<std::complex<double>>( 1.0i * 3.14159 );
Run Code Online (Sandbox Code Playgroud)
为什么复杂的字面值1.0i不能转换为std::complex<double>?
我必须明确地构建一个std::complex与1.0i?