diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index 639f78ceaa0d5c51afaf57195f75fc52fdd1dd26..bc3d030a05b688d74bbb2bcf269a1ccc4d2d20ad 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -3377,7 +3377,7 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
                 if ((i < n_obs) || (i >= nb_diag + n_obs) || (j1 >= nb_diag))
                   for (int k = n_obs; k < i_nz_state_var[i]; k++)
                     {
-                      v_index_KF.push_back(make_pair(i + j1 * n, make_pair(i + k * n, k + j1_n_state)));
+                      v_index_KF.emplace_back(i + j1 * n, make_pair(i + k * n, k + j1_n_state));
                     }
               }
           int size_v_index_KF = v_index_KF.size();
@@ -3396,7 +3396,7 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
                   for (int k = n_obs; k < i_nz_state_var[j]; k++)
                     {
                       int k_n = k * n;
-                      v_index_KF_2.push_back(make_pair(i * n + j,  make_pair(i + k_n - n_n_obs, j + k_n)));
+                      v_index_KF_2.emplace_back(i * n + j,  make_pair(i + k_n - n_n_obs, j + k_n));
                     }
               }
           int size_v_index_KF_2 = v_index_KF_2.size();
@@ -4351,7 +4351,7 @@ DynamicModel::collectBlockVariables()
                 }
             }
         }
-      block_var_exo.push_back(make_pair(tmp_var_exo, count_col_exo));
+      block_var_exo.emplace_back(tmp_var_exo, count_col_exo);
     }
 }
 
diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index e3715ed8eb82d4166d39ff210f4bbd603a3330c7..05f2559782af43c462ab8e1ad6e2b95f10dc907d 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -2703,55 +2703,55 @@ UnaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_
       switch (op_code)
         {
         case oUminus:
-          List_of_Op_RHS.push_back(make_pair(oUminus, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oUminus, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oExp:
-          List_of_Op_RHS.push_back(make_pair(oLog, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oLog, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oLog:
-          List_of_Op_RHS.push_back(make_pair(oExp, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oExp, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oLog10:
-          List_of_Op_RHS.push_back(make_pair(oPower, make_pair((expr_t) NULL, datatree.AddNonNegativeConstant("10"))));
+          List_of_Op_RHS.emplace_back(oPower, make_pair((expr_t) NULL, datatree.AddNonNegativeConstant("10")));
           return (make_pair(1, (expr_t) NULL));
         case oCos:
-          List_of_Op_RHS.push_back(make_pair(oAcos, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oAcos, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oSin:
-          List_of_Op_RHS.push_back(make_pair(oAsin, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oAsin, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oTan:
-          List_of_Op_RHS.push_back(make_pair(oAtan, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oAtan, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oAcos:
-          List_of_Op_RHS.push_back(make_pair(oCos, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oCos, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oAsin:
-          List_of_Op_RHS.push_back(make_pair(oSin, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oSin, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oAtan:
-          List_of_Op_RHS.push_back(make_pair(oTan, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oTan, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oCosh:
-          List_of_Op_RHS.push_back(make_pair(oAcosh, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oAcosh, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oSinh:
-          List_of_Op_RHS.push_back(make_pair(oAsinh, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oAsinh, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oTanh:
-          List_of_Op_RHS.push_back(make_pair(oAtanh, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oAtanh, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oAcosh:
-          List_of_Op_RHS.push_back(make_pair(oCosh, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oCosh, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oAsinh:
-          List_of_Op_RHS.push_back(make_pair(oSinh, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oSinh, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oAtanh:
-          List_of_Op_RHS.push_back(make_pair(oTanh, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oTanh, make_pair((expr_t) NULL, (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         case oSqrt:
-          List_of_Op_RHS.push_back(make_pair(oPower, make_pair((expr_t) NULL, datatree.Two)));
+          List_of_Op_RHS.emplace_back(oPower, make_pair((expr_t) NULL, datatree.Two));
           return (make_pair(1, (expr_t) NULL));
         case oAbs:
           return (make_pair(2, (expr_t) NULL));
@@ -4465,39 +4465,39 @@ BinaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr
     case oPlus:
       if (!is_endogenous_present_1 && !is_endogenous_present_2)
         {
-          List_of_Op_RHS.push_back(make_pair(oMinus, make_pair(datatree.AddPlus(expr_t_1, expr_t_2), (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oMinus, make_pair(datatree.AddPlus(expr_t_1, expr_t_2), (expr_t) NULL));
           return (make_pair(0, datatree.AddPlus(expr_t_1, expr_t_2)));
         }
       else if (is_endogenous_present_1 && is_endogenous_present_2)
         return (make_pair(1, (expr_t) NULL));
       else if (!is_endogenous_present_1 && is_endogenous_present_2)
         {
-          List_of_Op_RHS.push_back(make_pair(oMinus, make_pair(expr_t_1, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oMinus, make_pair(expr_t_1, (expr_t) NULL));
           return (make_pair(1, expr_t_1));
         }
       else if (is_endogenous_present_1 && !is_endogenous_present_2)
         {
-          List_of_Op_RHS.push_back(make_pair(oMinus, make_pair(expr_t_2, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oMinus, make_pair(expr_t_2, (expr_t) NULL));
           return (make_pair(1, expr_t_2));
         }
       break;
     case oMinus:
       if (!is_endogenous_present_1 && !is_endogenous_present_2)
         {
-          List_of_Op_RHS.push_back(make_pair(oMinus, make_pair(datatree.AddMinus(expr_t_1, expr_t_2), (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oMinus, make_pair(datatree.AddMinus(expr_t_1, expr_t_2), (expr_t) NULL));
           return (make_pair(0, datatree.AddMinus(expr_t_1, expr_t_2)));
         }
       else if (is_endogenous_present_1 && is_endogenous_present_2)
         return (make_pair(1, (expr_t) NULL));
       else if (!is_endogenous_present_1 && is_endogenous_present_2)
         {
-          List_of_Op_RHS.push_back(make_pair(oUminus, make_pair((expr_t) NULL, (expr_t) NULL)));
-          List_of_Op_RHS.push_back(make_pair(oMinus, make_pair(expr_t_1, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oUminus, make_pair((expr_t) NULL, (expr_t) NULL));
+          List_of_Op_RHS.emplace_back(oMinus, make_pair(expr_t_1, (expr_t) NULL));
           return (make_pair(1, expr_t_1));
         }
       else if (is_endogenous_present_1 && !is_endogenous_present_2)
         {
-          List_of_Op_RHS.push_back(make_pair(oPlus, make_pair(expr_t_2, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oPlus, make_pair(expr_t_2, (expr_t) NULL));
           return (make_pair(1, datatree.AddUMinus(expr_t_2)));
         }
       break;
@@ -4506,12 +4506,12 @@ BinaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr
         return (make_pair(0, datatree.AddTimes(expr_t_1, expr_t_2)));
       else if (!is_endogenous_present_1 && is_endogenous_present_2)
         {
-          List_of_Op_RHS.push_back(make_pair(oDivide, make_pair(expr_t_1, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oDivide, make_pair(expr_t_1, (expr_t) NULL));
           return (make_pair(1, expr_t_1));
         }
       else if (is_endogenous_present_1 && !is_endogenous_present_2)
         {
-          List_of_Op_RHS.push_back(make_pair(oDivide, make_pair(expr_t_2, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oDivide, make_pair(expr_t_2, (expr_t) NULL));
           return (make_pair(1, expr_t_2));
         }
       else
@@ -4522,12 +4522,12 @@ BinaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr
         return (make_pair(0, datatree.AddDivide(expr_t_1, expr_t_2)));
       else if (!is_endogenous_present_1 && is_endogenous_present_2)
         {
-          List_of_Op_RHS.push_back(make_pair(oDivide, make_pair((expr_t) NULL, expr_t_1)));
+          List_of_Op_RHS.emplace_back(oDivide, make_pair((expr_t) NULL, expr_t_1));
           return (make_pair(1, expr_t_1));
         }
       else if (is_endogenous_present_1 && !is_endogenous_present_2)
         {
-          List_of_Op_RHS.push_back(make_pair(oTimes, make_pair(expr_t_2, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oTimes, make_pair(expr_t_2, (expr_t) NULL));
           return (make_pair(1, expr_t_2));
         }
       else
@@ -4538,16 +4538,16 @@ BinaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr
         return (make_pair(0, datatree.AddPower(expr_t_1, expr_t_2)));
       else if (is_endogenous_present_1 && !is_endogenous_present_2)
         {
-          List_of_Op_RHS.push_back(make_pair(oPower, make_pair(datatree.AddDivide(datatree.One, expr_t_2), (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oPower, make_pair(datatree.AddDivide(datatree.One, expr_t_2), (expr_t) NULL));
           return (make_pair(1, (expr_t) NULL));
         }
       else if (!is_endogenous_present_1 && is_endogenous_present_2)
         {
           /* we have to nomalize a^f(X) = RHS */
           /* First computes the ln(RHS)*/
-          List_of_Op_RHS.push_back(make_pair(oLog, make_pair((expr_t) NULL, (expr_t) NULL)));
+          List_of_Op_RHS.emplace_back(oLog, make_pair((expr_t) NULL, (expr_t) NULL));
           /* Second  computes f(X) = ln(RHS) / ln(a)*/
-          List_of_Op_RHS.push_back(make_pair(oDivide, make_pair((expr_t) NULL, datatree.AddLog(expr_t_1))));
+          List_of_Op_RHS.emplace_back(oDivide, make_pair((expr_t) NULL, datatree.AddLog(expr_t_1)));
           return (make_pair(1, (expr_t) NULL));
         }
       break;
@@ -6447,7 +6447,7 @@ AbstractExternalFunctionNode::normalizeEquation(int var_endo, vector<pair<int, p
   bool present = false;
   for (auto argument : arguments)
     {
-      V_arguments.push_back(argument->normalizeEquation(var_endo, List_of_Op_RHS));
+      V_arguments.emplace_back(argument->normalizeEquation(var_endo, List_of_Op_RHS));
       present = present || V_arguments[V_arguments.size()-1].first;
       V_expr_t.push_back(V_arguments[V_arguments.size()-1].second);
     }
diff --git a/src/ModelTree.cc b/src/ModelTree.cc
index bd6f73607e62422085ea62553cb17acb108a998c..18468d0cbbf818979635729b169b40373249e637 100644
--- a/src/ModelTree.cc
+++ b/src/ModelTree.cc
@@ -918,21 +918,21 @@ ModelTree::reduceBlocksAndTypeDetermination(const dynamic_jacob_map_t &dynamic_j
                 {
                   block_type_size_mfs.push_back(make_pair(make_pair(Simulation_Type, eq), make_pair(Blck_Size, MFS_Size)));
                   block_lag_lead.push_back(make_pair(Lag, Lead));
-                  block_col_type.push_back(make_pair(make_pair(l_n_static, l_n_forward), make_pair(l_n_backward, l_n_mixed)));
+                  block_col_type.emplace_back(make_pair(l_n_static, l_n_forward), make_pair(l_n_backward, l_n_mixed));
                 }
             }
           else
             {
               block_type_size_mfs.push_back(make_pair(make_pair(Simulation_Type, eq), make_pair(Blck_Size, MFS_Size)));
               block_lag_lead.push_back(make_pair(Lag, Lead));
-              block_col_type.push_back(make_pair(make_pair(l_n_static, l_n_forward), make_pair(l_n_backward, l_n_mixed)));
+              block_col_type.emplace_back(make_pair(l_n_static, l_n_forward), make_pair(l_n_backward, l_n_mixed));
             }
         }
       else
         {
           block_type_size_mfs.push_back(make_pair(make_pair(Simulation_Type, eq), make_pair(Blck_Size, MFS_Size)));
           block_lag_lead.push_back(make_pair(Lag, Lead));
-          block_col_type.push_back(make_pair(make_pair(l_n_static, l_n_forward), make_pair(l_n_backward, l_n_mixed)));
+          block_col_type.emplace_back(make_pair(l_n_static, l_n_forward), make_pair(l_n_backward, l_n_mixed));
         }
       prev_Type = Simulation_Type;
       eq += Blck_Size;
@@ -1745,7 +1745,7 @@ ModelTree::addEquation(expr_t eq, int lineno, const vector<pair<string, string>
 {
   int n = equations.size();
   for (const auto & eq_tag : eq_tags)
-    equation_tags.push_back(make_pair(n, eq_tag));
+    equation_tags.emplace_back(n, eq_tag);
   addEquation(eq, lineno);
 }
 
diff --git a/src/ParsingDriver.cc b/src/ParsingDriver.cc
index caa4caa9ceb8878bf137fa315c879d690ec2f4ec..fd13292432034e456d2b9d8d23ffa3f254889b48 100644
--- a/src/ParsingDriver.cc
+++ b/src/ParsingDriver.cc
@@ -144,7 +144,7 @@ ParsingDriver::create_error_string(const Dynare::parser::location_type &l, const
 {
   ostringstream stream;
   create_error_string(l, m, stream);
-  model_errors.push_back(make_pair(var, stream.str()));
+  model_errors.emplace_back(var, stream.str());
 }
 
 void
@@ -173,7 +173,7 @@ ParsingDriver::undeclared_model_variable_error(const string &m, const string &va
   stream << m;
   if (nostrict)
     stream << " automatically declared exogenous.";
-  undeclared_model_variable_errors.push_back(make_pair(var, stream.str()));
+  undeclared_model_variable_errors.emplace_back(var, stream.str());
 }
 
 void
@@ -370,7 +370,7 @@ ParsingDriver::add_predetermined_variable(string *name)
 void
 ParsingDriver::add_equation_tags(string *key, string *value)
 {
-  eq_tags.push_back(make_pair(*key, *value));
+  eq_tags.emplace_back(*key, *value);
   delete key;
   delete value;
 }
@@ -623,7 +623,7 @@ ParsingDriver::add_VAR_restriction_coeff(string *name1, string *name2, string *l
 void
 ParsingDriver::add_VAR_restriction_eq_or_crosseq(expr_t expr)
 {
-  var_restriction_eq_or_crosseq.push_back(make_pair(var_restriction_coeff, expr));
+  var_restriction_eq_or_crosseq.emplace_back(var_restriction_coeff, expr);
 }
 
 void
@@ -1182,7 +1182,7 @@ ParsingDriver::add_period(string *p1, string *p2)
   int p2_val = atoi(p2->c_str());
   if (p1_val > p2_val)
     error("shocks/conditional_forecast_paths: can't have first period index greater than second index in range specification");
-  det_shocks_periods.push_back(make_pair(p1_val, p2_val));
+  det_shocks_periods.emplace_back(p1_val, p2_val);
   delete p1;
   delete p2;
 }
@@ -1191,7 +1191,7 @@ void
 ParsingDriver::add_period(string *p1)
 {
   int p1_val = atoi(p1->c_str());
-  det_shocks_periods.push_back(make_pair(p1_val, p1_val));
+  det_shocks_periods.emplace_back(p1_val, p1_val);
   delete p1;
 }
 
diff --git a/src/SteadyStateModel.cc b/src/SteadyStateModel.cc
index 4f1e40a369fd53898eccf6c3c2a6f28df7d9084c..8af236963fb39ce0bf3338b977096e9442bfb13a 100644
--- a/src/SteadyStateModel.cc
+++ b/src/SteadyStateModel.cc
@@ -39,7 +39,7 @@ SteadyStateModel::addDefinition(int symb_id, expr_t expr)
   // Add the variable
   vector<int> v;
   v.push_back(symb_id);
-  def_table.push_back(make_pair(v, expr));
+  def_table.emplace_back(v, expr);
 }
 
 void
@@ -52,7 +52,7 @@ SteadyStateModel::addMultipleDefinitions(const vector<int> &symb_ids, expr_t exp
              || symbol_table.getType(symb_id) == eModFileLocalVariable
              || symbol_table.getType(symb_id) == eParameter);
     }
-  def_table.push_back(make_pair(symb_ids, expr));
+  def_table.emplace_back(symb_ids, expr);
 }
 
 void
diff --git a/src/SymbolTable.cc b/src/SymbolTable.cc
index 3bbbeef85cda9fbcb2a088c4776393694ba3c8c1..484c9f0f8b51c69a80418f2f466a1da14348554a 100644
--- a/src/SymbolTable.cc
+++ b/src/SymbolTable.cc
@@ -624,7 +624,7 @@ SymbolTable::addLeadAuxiliaryVarInternal(bool endo, int index, expr_t expr_arg)
       exit(EXIT_FAILURE);
     }
 
-  aux_vars.push_back(AuxVarInfo(symb_id, (endo ? avEndoLead : avExoLead), 0, 0, 0, 0, expr_arg));
+  aux_vars.emplace_back(symb_id, (endo ? avEndoLead : avExoLead), 0, 0, 0, 0, expr_arg);
 
   return symb_id;
 }
@@ -650,7 +650,7 @@ SymbolTable::addLagAuxiliaryVarInternal(bool endo, int orig_symb_id, int orig_le
       exit(EXIT_FAILURE);
     }
 
-  aux_vars.push_back(AuxVarInfo(symb_id, (endo ? avEndoLag : avExoLag), orig_symb_id, orig_lead_lag, 0, 0, expr_arg));
+  aux_vars.emplace_back(symb_id, (endo ? avEndoLag : avExoLag), orig_symb_id, orig_lead_lag, 0, 0, expr_arg);
 
   return symb_id;
 }
@@ -698,7 +698,7 @@ SymbolTable::addExpectationAuxiliaryVar(int information_set, int index, expr_t e
       exit(EXIT_FAILURE);
     }
 
-  aux_vars.push_back(AuxVarInfo(symb_id, avExpectation, 0, 0, 0, information_set, expr_arg));
+  aux_vars.emplace_back(symb_id, avExpectation, 0, 0, 0, information_set, expr_arg);
 
   return symb_id;
 }
@@ -721,7 +721,7 @@ SymbolTable::addDiffLagAuxiliaryVar(int index, expr_t expr_arg, int orig_symb_id
       exit(EXIT_FAILURE);
     }
 
-  aux_vars.push_back(AuxVarInfo(symb_id, avDiffLag, orig_symb_id, orig_lag, 0, 0, expr_arg));
+  aux_vars.emplace_back(symb_id, avDiffLag, orig_symb_id, orig_lag, 0, 0, expr_arg);
 
   return symb_id;
 }
@@ -744,7 +744,7 @@ SymbolTable::addDiffAuxiliaryVar(int index, expr_t expr_arg, int orig_symb_id, i
       exit(EXIT_FAILURE);
     }
 
-  aux_vars.push_back(AuxVarInfo(symb_id, avDiff, orig_symb_id, orig_lag, 0, 0, expr_arg));
+  aux_vars.emplace_back(symb_id, avDiff, orig_symb_id, orig_lag, 0, 0, expr_arg);
 
   return symb_id;
 }
@@ -772,7 +772,7 @@ SymbolTable::addUnaryOpAuxiliaryVar(int index, expr_t expr_arg, int orig_symb_id
       exit(EXIT_FAILURE);
     }
 
-  aux_vars.push_back(AuxVarInfo(symb_id, avUnaryOp, orig_symb_id, orig_lag, 0, 0, expr_arg));
+  aux_vars.emplace_back(symb_id, avUnaryOp, orig_symb_id, orig_lag, 0, 0, expr_arg);
 
   return symb_id;
 }
@@ -794,7 +794,7 @@ SymbolTable::addVarModelEndoLagAuxiliaryVar(int orig_symb_id, int orig_lead_lag,
       exit(EXIT_FAILURE);
     }
 
-  aux_vars.push_back(AuxVarInfo(symb_id, avVarModel, orig_symb_id, orig_lead_lag, 0, 0, expr_arg));
+  aux_vars.emplace_back(symb_id, avVarModel, orig_symb_id, orig_lead_lag, 0, 0, expr_arg);
 
   return symb_id;
 }
@@ -816,7 +816,7 @@ SymbolTable::addMultiplierAuxiliaryVar(int index) throw (FrozenException)
       exit(EXIT_FAILURE);
     }
 
-  aux_vars.push_back(AuxVarInfo(symb_id, avMultiplier, 0, 0, index, 0, NULL));
+  aux_vars.emplace_back(symb_id, avMultiplier, 0, 0, index, 0, nullptr);
   return symb_id;
 }
 
@@ -837,7 +837,7 @@ SymbolTable::addDiffForwardAuxiliaryVar(int orig_symb_id, expr_t expr_arg) throw
       exit(EXIT_FAILURE);
     }
 
-  aux_vars.push_back(AuxVarInfo(symb_id, avDiffForward, orig_symb_id, 0, 0, 0, expr_arg));
+  aux_vars.emplace_back(symb_id, avDiffForward, orig_symb_id, 0, 0, 0, expr_arg);
   return symb_id;
 }