diff --git a/dynare++/tl/cc/equivalence.cc b/dynare++/tl/cc/equivalence.cc index 85d1a9fa6080f9474b8797c156d4454ba50333dd..070bf00a153d38094355064e8bc655d6f67b5aa5 100644 --- a/dynare++/tl/cc/equivalence.cc +++ b/dynare++/tl/cc/equivalence.cc @@ -400,13 +400,6 @@ EquivalenceBundle::EquivalenceBundle(int nmax) generateUpTo(nmax); } -/* Destruct bundle. Just free all pointers. */ -EquivalenceBundle::~EquivalenceBundle() -{ - for (auto & i : bundle) - delete i; -} - /* Remember, that the first item is |EquivalenceSet(1)|. */ const EquivalenceSet & EquivalenceBundle::get(int n) const @@ -414,11 +407,11 @@ EquivalenceBundle::get(int n) const if (n > (int) (bundle.size()) || n < 1) { TL_RAISE("Equivalence set not found in EquivalenceBundle::get"); - return *(bundle[0]); + return bundle[0]; } else { - return *(bundle[n-1]); + return bundle[n-1]; } } @@ -430,5 +423,5 @@ EquivalenceBundle::generateUpTo(int nmax) { int curmax = bundle.size(); for (int i = curmax+1; i <= nmax; i++) - bundle.push_back(new EquivalenceSet(i)); + bundle.emplace_back(i); } diff --git a/dynare++/tl/cc/equivalence.hh b/dynare++/tl/cc/equivalence.hh index 6b9c2e917e5b6d65dc1c527e1c47683ea2d2e88f..3f81cae54f6efbe2e34ac30ea9d857fbdcfc566e 100644 --- a/dynare++/tl/cc/equivalence.hh +++ b/dynare++/tl/cc/equivalence.hh @@ -212,10 +212,10 @@ private: class EquivalenceBundle { - vector<EquivalenceSet *> bundle; + vector<EquivalenceSet> bundle; public: EquivalenceBundle(int nmax); - ~EquivalenceBundle(); + ~EquivalenceBundle() = default; const EquivalenceSet&get(int n) const; void generateUpTo(int nmax); };