From b51f176232ea1e8f9c02de3fb40aad2f37495852 Mon Sep 17 00:00:00 2001 From: Frank Dellaert Date: Mon, 9 Jan 2023 22:43:14 -0800 Subject: [PATCH] Simplify initializer list constructors. --- gtsam/inference/FactorGraph.h | 6 ++---- gtsam/linear/VectorValues.h | 7 ++----- gtsam/symbolic/SymbolicBayesNet.h | 7 ++----- gtsam/symbolic/SymbolicFactorGraph.h | 7 +++---- 4 files changed, 9 insertions(+), 18 deletions(-) diff --git a/gtsam/inference/FactorGraph.h b/gtsam/inference/FactorGraph.h index 915ae273a..68dc79d3f 100644 --- a/gtsam/inference/FactorGraph.h +++ b/gtsam/inference/FactorGraph.h @@ -166,10 +166,8 @@ class FactorGraph { * FactorGraph fg = {make_shared(), ...}; */ template > - FactorGraph( - std::initializer_list> sharedFactors) { - for (auto&& f : sharedFactors) factors_.push_back(f); - } + FactorGraph(std::initializer_list> sharedFactors) + : factors_(sharedFactors) {} /// @} /// @name Adding Single Factors diff --git a/gtsam/linear/VectorValues.h b/gtsam/linear/VectorValues.h index 6a645150f..42916f619 100644 --- a/gtsam/linear/VectorValues.h +++ b/gtsam/linear/VectorValues.h @@ -92,11 +92,8 @@ namespace gtsam { VectorValues() {} /// Construct from initializer list. - VectorValues(std::initializer_list> init) { - for (const auto& p : init) { - values_.insert(p); // Insert key-value pair into map - } - } + VectorValues(std::initializer_list> init) + : values_(init.begin(), init.end()) {} /** Merge two VectorValues into one, this is more efficient than inserting * elements one by one. */ diff --git a/gtsam/symbolic/SymbolicBayesNet.h b/gtsam/symbolic/SymbolicBayesNet.h index 43f1edd69..643feee3f 100644 --- a/gtsam/symbolic/SymbolicBayesNet.h +++ b/gtsam/symbolic/SymbolicBayesNet.h @@ -64,11 +64,8 @@ namespace gtsam { * Constructor that takes an initializer list of shared pointers. * FactorGraph fg = {make_shared(), ...}; */ - SymbolicBayesNet( - std::initializer_list> - sharedFactors) { - for (auto&& f : sharedFactors) factors_.push_back(f); - } + SymbolicBayesNet(std::initializer_list> sharedFactors) + : Base() {} /// Construct from a single conditional SymbolicBayesNet(SymbolicConditional&& c) { diff --git a/gtsam/symbolic/SymbolicFactorGraph.h b/gtsam/symbolic/SymbolicFactorGraph.h index aeb9e3b84..1d4292cbf 100644 --- a/gtsam/symbolic/SymbolicFactorGraph.h +++ b/gtsam/symbolic/SymbolicFactorGraph.h @@ -91,10 +91,9 @@ namespace gtsam { * Constructor that takes an initializer list of shared pointers. * FactorGraph fg = {make_shared(), ...}; */ - SymbolicFactorGraph(std::initializer_list> - sharedFactors) { - for (auto&& f : sharedFactors) factors_.push_back(f); - } + SymbolicFactorGraph( + std::initializer_list> sharedFactors) + : Base(sharedFactors) {} /// Construct from a single factor SymbolicFactorGraph(SymbolicFactor&& c) {