В 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) работает нормально! У кого-нибудь есть идея, что происходит? Я не знаю, с чего начать.
Задача ещё не решена.
Других решений пока нет …