I am compiling the following code with icpc 12.1.2 20111128 as on RHEL6 64-bit.
> icpc -O2 -ansi_alias -fPIC test.cc> ./a.out (6.95323e-310,0) (5.5, 6.6)
Both results should be (5.5, 6.6).
Here is test.cc:
#include <complex> #include <iostream> void badComplex(double x, double y, std::complex<double>& result) { result = std::complex<double>(x,y); } std::complex<double> goodComplex(double x, double y) { std::complex<double> result(x,y); return result; } int main() { double x = 5.5; double y = 5.5; std::complex<double> badResult; badComplex(x, y, badResult); std::complex<double> goodResult = goodComplex(x, y); std::cerr << badResult << ""<< goodResult << std::endl; return 0; }