diff --git a/src/DataTree.cc b/src/DataTree.cc
index 22a6fb8dd042c0f8cf9a781c9e4f7a60c15fd4a8..7044d98ef2a1e6740d110909270df6eab2bf95dc 100644
--- a/src/DataTree.cc
+++ b/src/DataTree.cc
@@ -404,7 +404,7 @@ DataTree::AddDiff(expr_t iArg1)
 expr_t
 DataTree::AddAdl(expr_t iArg1, const string &name, const vector<int> &lags)
 {
-  return AddUnaryOp(UnaryOpcode::adl, iArg1, 0, 0, 0, string(name), lags);
+  return AddUnaryOp(UnaryOpcode::adl, iArg1, 0, 0, 0, name, lags);
 }
 
 expr_t
diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index 281a885d72ee8d3f4ba11a56ed7a7d09e3d48c9b..7225700120aa460b12ab2a9a57c6d2d8edd5d157 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -505,7 +505,7 @@ DynamicModel::writeDynamicPerBlockMFiles(const string &basename) const
         output << "function [residual, y, T, g1, varargout] = dynamic_" << blk+1 << "(y, x, params, steady_state, T, it_, stochastic_mode)" << endl;
 
       output << "  % ////////////////////////////////////////////////////////////////////////" << endl
-             << "  % //" << string("                     Block ").substr(static_cast<int>(log10(blk + 1))) << blk+1
+             << "  % //" << "                     Block "s.substr(static_cast<int>(log10(blk + 1))) << blk+1
              << "                                        //" << endl
              << "  % //                     Simulation type "
              << BlockSim(simulation_type) << "  //" << endl
diff --git a/src/DynareFlex.ll b/src/DynareFlex.ll
index 23de13ca8827ced6729a433ef3cdad3533642943..3b6688c73a1540989d4bae97bdc8296adddf7959 100644
--- a/src/DynareFlex.ll
+++ b/src/DynareFlex.ll
@@ -83,7 +83,7 @@ DATE -?[0-9]+([ya]|m([1-9]|1[0-2])|q[1-4])
  /* Rules for matching $line directives */
 <*>^@#line\ \"  { line_caller = YYSTATE; BEGIN(LINE1); }
 <LINE1>[^\"]*   {
-                  filename = string(yytext);
+                  filename = yytext;
                   BEGIN(LINE2);
                 }
 <LINE2>\"       BEGIN(LINE3);
@@ -1127,7 +1127,7 @@ DATE -?[0-9]+([ya]|m([1-9]|1[0-2])|q[1-4])
     and move to the NATIVE context
  */
 <INITIAL>\[([[:space:]]*[a-z_][a-z0-9_]*[[:space:]]*,{1}[[:space:]]*)*([[:space:]]*[a-z_][a-z0-9_]*[[:space:]]*){1}\] {
-  string yytextcpy = string(yytext);
+  string yytextcpy{yytext};
   yytextcpy.erase(remove(yytextcpy.begin(), yytextcpy.end(), '['), yytextcpy.end());
   yytextcpy.erase(remove(yytextcpy.begin(), yytextcpy.end(), ']'), yytextcpy.end());
   yytextcpy.erase(remove(yytextcpy.begin(), yytextcpy.end(), ' '), yytextcpy.end());
@@ -1166,7 +1166,7 @@ DATE -?[0-9]+([ya]|m([1-9]|1[0-2])|q[1-4])
   \"[^\"\n]*\"                |
   \.{1,2}                     |
   \*                          |
-  \/                          { yymore(); eofbuff = string(yytext); }
+  \/                          { yymore(); eofbuff = yytext; }
   \.{3,}[[:space:]]*\n        { driver.add_native_remove_charset(yytext, "\n"); }
   \n                          {
                                 if (strlen(yytext) > 1)
diff --git a/src/ModelTree.cc b/src/ModelTree.cc
index 8b2ff1cde97745960b6a5b2f1b4ebb17434336d9..ee58009be311687a6fafed3d45695d26df4ed5ab 100644
--- a/src/ModelTree.cc
+++ b/src/ModelTree.cc
@@ -1890,7 +1890,7 @@ ModelTree::compileMEX(const string &basename, const string &funcname, const stri
           flags << " -static-libgcc -shared";
           // Put the MinGW environment shipped with Dynare in the path
           auto mingwpath = dynareroot / "mingw64" / "bin";
-          string newpath = "PATH=" + mingwpath.string() + ';' + string{getenv("PATH")};
+          string newpath = "PATH=" + mingwpath.string() + ';' + getenv("PATH");
           /* We can’t use setenv() since it is not available on MinGW. Note
             that putenv() seems to make a copy of the string on MinGW, contrary
             to what is done on GNU/Linux and macOS. */
diff --git a/src/ParsingDriver.cc b/src/ParsingDriver.cc
index 08f93f016b2a1beb85119180b7ca66c530729eb4..5194429a5d674e4ce7b4229a349e9116a32c01d5 100644
--- a/src/ParsingDriver.cc
+++ b/src/ParsingDriver.cc
@@ -3146,7 +3146,7 @@ ParsingDriver::add_model_var_or_external_function(const string &function_name, b
       if (!in_model_block && !parsing_epilogue && !parsing_pac_model)
         {
           if (stack_external_function_args.top().size() > 0)
-            error(string("Symbol ") + function_name + string(" cannot take arguments."));
+            error("Symbol " + function_name + " cannot take arguments.");
           else
             return add_expression_variable(function_name);
         }
diff --git a/src/StaticModel.cc b/src/StaticModel.cc
index f016a2c9ff0dc399e4dcc726a805d8b5cdbc26d7..6ae1b984b02c1a0a7a5b5aee8a9b9c26ca2f576e 100644
--- a/src/StaticModel.cc
+++ b/src/StaticModel.cc
@@ -260,7 +260,7 @@ StaticModel::writeStaticPerBlockMFiles(const string &basename) const
         output << "function [residual, y, T, g1] = static_" << blk+1 << "(y, x, params, T)" << endl;
 
       output << "  % ////////////////////////////////////////////////////////////////////////" << endl
-             << "  % //" << string("                     Block ").substr(static_cast<int>(log10(blk + 1))) << blk+1
+             << "  % //" << "                     Block "s.substr(static_cast<int>(log10(blk + 1))) << blk+1
              << "                                        //" << endl
              << "  % //                     Simulation type "
              << BlockSim(simulation_type) << "  //" << endl
diff --git a/src/SymbolTable.cc b/src/SymbolTable.cc
index fa6dc2340c03672867516698bdfa0e9741ab8c54..949a7feeb2cc527fdea55766f7bd812147494970 100644
--- a/src/SymbolTable.cc
+++ b/src/SymbolTable.cc
@@ -486,7 +486,7 @@ SymbolTable::addExoLagAuxiliaryVar(int orig_symb_id, int orig_lead_lag, expr_t e
 int
 SymbolTable::addExpectationAuxiliaryVar(int information_set, int index, expr_t expr_arg) noexcept(false)
 {
-  string varname{string{"AUX_EXPECT_"} + (information_set < 0 ? "LAG" : "LEAD") + "_"
+  string varname{"AUX_EXPECT_"s + (information_set < 0 ? "LAG" : "LEAD") + "_"
     + to_string(abs(information_set)) + "_" + to_string(index)};
   int symb_id;
   try