我有以下一段 C++ 代码:
void update(const int step, const int total) const
{
double s = static_cast<double>(step);
double t = static_cast<double>(total);
std::cout << s/t <<"------\n";
// etc...
}
我正在使用激活了 -fp-trap=all 标志的 intel c++ 编译器。通过 gdb 运行代码时,出现以下错误:
Program received signal SIGFPE, Arithmetic exception.
0x000000000040ee07 in NilDa::progressBar::update (this=0x7fffffffbc9c, step=1, total=60000) at /home/d2d/dev/NilDa/sources/utils/progressBar.h:69
69 std::cout << s/t <<"------\n";
我真的不明白发生了什么。分工似乎很明确。