diff --git a/gtsam/hybrid/HybridGaussianConditional.cpp b/gtsam/hybrid/HybridGaussianConditional.cpp index 76a09bcf5..a890b37b7 100644 --- a/gtsam/hybrid/HybridGaussianConditional.cpp +++ b/gtsam/hybrid/HybridGaussianConditional.cpp @@ -110,15 +110,15 @@ struct HybridGaussianConditional::Helper { /* *******************************************************************************/ HybridGaussianConditional::HybridGaussianConditional( - const DiscreteKeys &discreteParents, const Helper &helper) + const DiscreteKeys &discreteParents, Helper &&helper) : BaseFactor(discreteParents, - FactorValuePairs(helper.pairs, - [&](const GaussianFactorValuePair & - pair) { // subtract minNegLogConstant - return GaussianFactorValuePair{ - pair.first, - pair.second - helper.minNegLogConstant}; - })), + FactorValuePairs( + [&](const GaussianFactorValuePair + &pair) { // subtract minNegLogConstant + return GaussianFactorValuePair{ + pair.first, pair.second - helper.minNegLogConstant}; + }, + std::move(helper.pairs))), BaseConditional(*helper.nrFrontals), negLogConstant_(helper.minNegLogConstant) {} diff --git a/gtsam/hybrid/HybridGaussianConditional.h b/gtsam/hybrid/HybridGaussianConditional.h index c38d8733c..c485fafce 100644 --- a/gtsam/hybrid/HybridGaussianConditional.h +++ b/gtsam/hybrid/HybridGaussianConditional.h @@ -241,7 +241,7 @@ class GTSAM_EXPORT HybridGaussianConditional /// Private constructor that uses helper struct above. HybridGaussianConditional(const DiscreteKeys &discreteParents, - const Helper &helper); + Helper &&helper); /// Check whether `given` has values for all frontal keys. bool allFrontalsGiven(const VectorValues &given) const;