diff --git a/src/ExprNode.cc b/src/ExprNode.cc index add5932fbde1e6e58c94c5363d95a2ae9dfaef98..a697f645513e7d0da0702512e8eab8e6c87e332f 100644 --- a/src/ExprNode.cc +++ b/src/ExprNode.cc @@ -6433,11 +6433,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; }