默认的valarray传递不起作用

时间:2013-05-15 20:17:09

标签: c++ std default-arguments valarray

在C ++中,我有两个函数:

do_work(args, std::valarray<double> arr=std::valarray<double>(0.0, 1)) {
  very_complicated_things
}

wrapper(args, std::valarray<double> arr=std::valarray<double>(0.0, 1)) {
  do_work(args, arr);
}

调用do_work(args)并调用包装器(args)会产生不同的结果。前者工作正常;后者在do_work函数中的某处崩溃,我不知道为什么(代码非常复杂)。为什么会这样?如果我在包装器中的函数调用中省略了“arr”参数:

wrapper(args, std::valarray<double> arr=std::valarray<double>(0.0, 1)) {
  do_work(args);
}

然后包装(args)工作正常!有谁知道发生了什么?我不知道从哪里开始寻找。

0 个答案:

没有答案