Когда я компилирую следующий код с g++ (4.8.1 или 4.9.0) или clang++ (3.4), я получаю разные выходы.
#include <iostream>
#include <complex>
int main() {
std::complex<double> c = {1.e-162,0};
std::cout << 1.0/c << std::endl;
return 0;
}
г ++:
(1e+162,0)
лязг ++:
(inf,-nan)
Это ошибка в clang?
Update:
Спасибо за ваши ответы! Я сообщил об ошибке: http://llvm.org/bugs/show_bug.cgi?id=19820