diff --git a/src/ExprNode.cc b/src/ExprNode.cc index 09f409059e08851ac62209fd6f4d3c1cfa5c0601..81ba65f4aff9720153b3817bd7932ea5aa3c7ae4 100644 --- a/src/ExprNode.cc +++ b/src/ExprNode.cc @@ -6758,11 +6758,15 @@ AbstractExternalFunctionNode::prepareForDerivation() non_null_derivatives = arguments.at(0)->non_null_derivatives; for (int i = 1; i < static_cast<int>(arguments.size()); i++) - set_union(non_null_derivatives.begin(), - non_null_derivatives.end(), - arguments.at(i)->non_null_derivatives.begin(), - arguments.at(i)->non_null_derivatives.end(), - inserter(non_null_derivatives, non_null_derivatives.begin())); + { + set<int> non_null_derivatives_tmp; + set_union(non_null_derivatives.begin(), + non_null_derivatives.end(), + arguments.at(i)->non_null_derivatives.begin(), + arguments.at(i)->non_null_derivatives.end(), + inserter(non_null_derivatives_tmp, non_null_derivatives_tmp.begin())); + non_null_derivatives = move(non_null_derivatives_tmp); + } preparedForDerivation = true; }