在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)工作正常!有谁知道发生了什么?我不知道从哪里开始寻找。