From 566d237ec3fd9500e4a6dab1d39312ef43dadef9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Thu, 31 Jan 2019 17:58:54 +0100
Subject: [PATCH] Dynare++ tensor library: small simplification

---
 dynare++/tl/cc/equivalence.cc | 13 +++----------
 dynare++/tl/cc/equivalence.hh |  4 ++--
 2 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/dynare++/tl/cc/equivalence.cc b/dynare++/tl/cc/equivalence.cc
index 85d1a9fa6..070bf00a1 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 6b9c2e917..3f81cae54 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);
 };
-- 
GitLab