diff --git a/Framework/API/src/Algorithm.cpp b/Framework/API/src/Algorithm.cpp
index ef9ae5f017cbcf25a23e04f3703666ebd4278eab..154f7794999fadaeb8973c73dbcc86defab1ff7c 100644
--- a/Framework/API/src/Algorithm.cpp
+++ b/Framework/API/src/Algorithm.cpp
@@ -1332,10 +1332,12 @@ bool Algorithm::processGroups() {
         // Default name = "in1_in2_out"
         const std::string inName = prop->value();
         std::string outName;
-        if (m_groupsHaveSimilarNames)
-          outName = inName + "_" + Strings::toString(entry + 1);
-        else
-          outName = outputBaseName + "_" + inName;
+        if (m_groupsHaveSimilarNames) {
+          outName.append(inName).append("_").append(
+              Strings::toString(entry + 1));
+        } else {
+          outName.append(outputBaseName).append("_").append(inName);
+        }
 
         auto inputProp = std::find_if(m_inputWorkspaceProps.begin(),
                                       m_inputWorkspaceProps.end(),
diff --git a/Framework/API/src/FunctionFactory.cpp b/Framework/API/src/FunctionFactory.cpp
index 2f870c01799439d5695a028e68c5ea33aaa22e1d..2fdd0aec21e5b630f0df72edb9acde2c7234d24e 100644
--- a/Framework/API/src/FunctionFactory.cpp
+++ b/Framework/API/src/FunctionFactory.cpp
@@ -125,8 +125,11 @@ IFunction_sptr FunctionFactoryImpl::createSimple(
         fun->setParameter(parName, boost::lexical_cast<double>(parValue));
       } catch (boost::bad_lexical_cast &) {
         throw std::runtime_error(
-            "Error in value of parameter " + parName + ".\n" + parValue +
-            " cannot be interpreted as a floating point value.");
+            std::string("Error in value of parameter ")
+                .append(parName)
+                .append(".\n")
+                .append(parValue)
+                .append(" cannot be interpreted as a floating point value."));
       }
     }
   } // for term
diff --git a/Framework/API/src/MuParserUtils.cpp b/Framework/API/src/MuParserUtils.cpp
index fe56575992421f521b0fd38357350a72b00ceb3d..7ff53a0c45b44ab4db2b533c94f28ef4517e5632 100644
--- a/Framework/API/src/MuParserUtils.cpp
+++ b/Framework/API/src/MuParserUtils.cpp
@@ -36,7 +36,7 @@ const std::map<double, std::string> MUPARSER_CONSTANTS = {
  *  @param parser The parser to be initialized.
  */
 void DLLExport addDefaultConstants(mu::Parser &parser) {
-  for (const auto constant : MUPARSER_CONSTANTS) {
+  for (const auto &constant : MUPARSER_CONSTANTS) {
     parser.DefineConst(constant.second, constant.first);
   }
 }
@@ -46,7 +46,7 @@ const std::map<std::string, oneVarFun> MUPARSER_ONEVAR_FUNCTIONS = {
     {"erf", gsl_sf_erf}, {"erfc", gsl_sf_erfc}};
 
 void DLLExport extraOneVarFunctions(mu::Parser &parser) {
-  for (const auto function : MUPARSER_ONEVAR_FUNCTIONS) {
+  for (const auto &function : MUPARSER_ONEVAR_FUNCTIONS) {
     parser.DefineFun(function.first, function.second);
   }
 }
diff --git a/Framework/CurveFitting/src/FuncMinimizers/FABADAMinimizer.cpp b/Framework/CurveFitting/src/FuncMinimizers/FABADAMinimizer.cpp
index 141e127f4fd4d2b87d51b73e34a00fc293129aea..93766046c73254fd271f1a0c81ff782af6851aaa 100644
--- a/Framework/CurveFitting/src/FuncMinimizers/FABADAMinimizer.cpp
+++ b/Framework/CurveFitting/src/FuncMinimizers/FABADAMinimizer.cpp
@@ -1002,7 +1002,7 @@ bool FABADAMinimizer::IterationContinuation() {
       std::string failed = "";
       for (size_t i = 0; i < m_nParams; ++i) {
         if (!m_par_converged[i]) {
-          failed = failed + m_FitFunction->parameterName(i) + ", ";
+          failed.append(m_FitFunction->parameterName(i)).append(", ");
         }
       }
       failed.replace(failed.end() - 2, failed.end(), ".");
diff --git a/Framework/DataHandling/src/FilterEventsByLogValuePreNexus.cpp b/Framework/DataHandling/src/FilterEventsByLogValuePreNexus.cpp
index 4efeb98b8760ecfc6c20ec6b991a00c04c5d788b..3401c5b8277b4addf35adf4d7b80f6fb4a387601 100644
--- a/Framework/DataHandling/src/FilterEventsByLogValuePreNexus.cpp
+++ b/Framework/DataHandling/src/FilterEventsByLogValuePreNexus.cpp
@@ -177,14 +177,23 @@ static string generateMappingfileName(EventWorkspace_sptr &wksp) {
   for (auto &dir : dirs) {
     if ((dir.length() > CAL_LEN) &&
         (dir.compare(dir.length() - CAL.length(), CAL.length(), CAL) == 0)) {
-      if (Poco::File(base.path() + "/" + dir + "/calibrations/" + mapping)
-              .exists())
-        files.push_back(base.path() + "/" + dir + "/calibrations/" + mapping);
+      if (Poco::File(std::string(base.path())
+                         .append("/")
+                         .append(dir)
+                         .append("/calibrations/")
+                         .append(mapping))
+              .exists()) {
+        files.push_back(std::string(base.path())
+                            .append("/")
+                            .append(dir)
+                            .append("/calibrations/")
+                            .append(mapping));
+      }
     }
   }
 
   if (files.empty())
-    return "";
+    return std::string();
   else if (files.size() == 1)
     return files[0];
   else // just assume that the last one is the right one, this should never be
diff --git a/Framework/DataHandling/src/ImggAggregateWavelengths.cpp b/Framework/DataHandling/src/ImggAggregateWavelengths.cpp
index 3b1bd81eb312ade75ddcdd47d3bf4540548fbe4f..63273b693ec2378b6e8c16e9a707336872fea660 100644
--- a/Framework/DataHandling/src/ImggAggregateWavelengths.cpp
+++ b/Framework/DataHandling/src/ImggAggregateWavelengths.cpp
@@ -514,8 +514,11 @@ ImggAggregateWavelengths::rangesFromStringProperty(
                       Mantid::Kernel::StringTokenizer::TOK_TRIM);
     if (2 != minMaxTokens.count()) {
       throw std::invalid_argument(
-          "Could not parse a minimum and maximum value separated by '" + sep +
-          "' from the string: " + str);
+          std::string(
+              "Could not parse a minimum and maximum value separated by '")
+              .append(sep)
+              .append("' from the string: ")
+              .append(str));
     }
 
     try {
diff --git a/Framework/DataHandling/src/LoadDetectorsGroupingFile.cpp b/Framework/DataHandling/src/LoadDetectorsGroupingFile.cpp
index c38e6ef6e9e950e2bc24abab845c47e84f22c120..0dce1ba93a0e5b57d25120127151954019e24eeb 100644
--- a/Framework/DataHandling/src/LoadDetectorsGroupingFile.cpp
+++ b/Framework/DataHandling/src/LoadDetectorsGroupingFile.cpp
@@ -512,7 +512,7 @@ void LoadGroupXMLFile::parseXML() {
             this->getAttributeValueByName(pNode, "val", valfound);
         std::string finalvalue;
         if (valfound && !value.empty())
-          finalvalue = value + ", " + val_value;
+          finalvalue.append(value).append(", ").append(val_value);
         else if (value.empty())
           finalvalue = val_value;
         else
@@ -535,7 +535,7 @@ void LoadGroupXMLFile::parseXML() {
             this->getAttributeValueByName(pNode, "val", valfound);
         std::string finalvalue;
         if (valfound && !value.empty())
-          finalvalue = value + ", " + val_value;
+          finalvalue.append(value).append(", ").append(val_value);
         else if (value.empty())
           finalvalue = val_value;
         else
@@ -560,7 +560,7 @@ void LoadGroupXMLFile::parseXML() {
             this->getAttributeValueByName(pNode, "val", valfound);
         std::string finalvalue;
         if (valfound && !value.empty())
-          finalvalue = value + ", " + val_value;
+          finalvalue.append(value).append(", ").append(val_value);
         else if (value.empty())
           finalvalue = val_value;
         else
diff --git a/Framework/DataHandling/src/LoadEventPreNexus2.cpp b/Framework/DataHandling/src/LoadEventPreNexus2.cpp
index 4760f788357cd916fe687730d25dc184278a3a67..10a2fac1dbc21c7d27abe477989f6aaa5dfd6dc7 100644
--- a/Framework/DataHandling/src/LoadEventPreNexus2.cpp
+++ b/Framework/DataHandling/src/LoadEventPreNexus2.cpp
@@ -175,9 +175,17 @@ static string generateMappingfileName(EventWorkspace_sptr &wksp) {
   for (auto &dir : dirs) {
     if ((dir.length() > CAL_LEN) &&
         (dir.compare(dir.length() - CAL.length(), CAL.length(), CAL) == 0)) {
-      if (Poco::File(base.path() + "/" + dir + "/calibrations/" + mapping)
+      if (Poco::File(std::string(base.path())
+                         .append("/")
+                         .append(dir)
+                         .append("/calibrations/")
+                         .append(mapping))
               .exists())
-        files.push_back(base.path() + "/" + dir + "/calibrations/" + mapping);
+        files.push_back(std::string(base.path())
+                            .append("/")
+                            .append(dir)
+                            .append("/calibrations/")
+                            .append(mapping));
     }
   }
 
diff --git a/Framework/DataHandling/src/LoadMask.cpp b/Framework/DataHandling/src/LoadMask.cpp
index 8710f55f6a3dfdad3249ea64ecdcc4449e1494ad..19367a82d43eddd270a10fd7dacabab6c5562039 100644
--- a/Framework/DataHandling/src/LoadMask.cpp
+++ b/Framework/DataHandling/src/LoadMask.cpp
@@ -96,7 +96,7 @@ void parseRangeText(const std::string &inputstr, std::vector<T> &singles,
     // a) Find '-':
     boost::trim(rawstring);
     bool containDash(true);
-    if (rawstring.find_first_of("-") == std::string::npos) {
+    if (rawstring.find_first_of('-') == std::string::npos) {
       containDash = false;
     }
 
diff --git a/Framework/DataHandling/src/LoadMcStas.cpp b/Framework/DataHandling/src/LoadMcStas.cpp
index 9c9d0ea293834c9c6b8f7c6665e8c1d7cc68d173..9948cd1d6bb3155eaa2bb0f2ba578b370f314af4 100644
--- a/Framework/DataHandling/src/LoadMcStas.cpp
+++ b/Framework/DataHandling/src/LoadMcStas.cpp
@@ -510,8 +510,9 @@ void LoadMcStas::readHistogramData(
 
     // ensure that specified name is given to workspace (eventWS) when added to
     // outputGroup
-    std::string nameOfGroupWS = getProperty("OutputWorkspace");
-    std::string nameUserSee = nameAttrValueTITLE + "_" + nameOfGroupWS;
+    std::string nameUserSee = std::string(nameAttrValueTITLE)
+                                  .append("_")
+                                  .append(getProperty("OutputWorkspace"));
     std::string extraProperty =
         "Outputworkspace_dummy_" + std::to_string(m_countNumWorkspaceAdded);
     declareProperty(Kernel::make_unique<WorkspaceProperty<Workspace>>(
diff --git a/Framework/DataHandling/src/LoadRawHelper.cpp b/Framework/DataHandling/src/LoadRawHelper.cpp
index 3215c382b24a3c20c7cf9874279a50fa6884cc30..c561c784a8a339680b4d6f8db19aeb94a0151346 100644
--- a/Framework/DataHandling/src/LoadRawHelper.cpp
+++ b/Framework/DataHandling/src/LoadRawHelper.cpp
@@ -1257,7 +1257,6 @@ LoadRawHelper::getLogFilenamesfromADS(const std::string &pathToRawFile) {
 
   std::string str;
   std::string path;
-  std::string logFile;
   std::set<std::string> logfilesList;
   Poco::Path logpath(pathToRawFile);
   size_t pos = pathToRawFile.find_last_of('/');
@@ -1276,10 +1275,7 @@ LoadRawHelper::getLogFilenamesfromADS(const std::string &pathToRawFile) {
     pos = fileName.find("txt");
     if (pos == std::string::npos)
       continue;
-    logFile = path + "/" + fileName;
-    if (logFile.empty())
-      continue;
-    logfilesList.insert(logFile);
+    logfilesList.insert(std::string(path).append("/").append(fileName));
   }
   return (logfilesList);
 }
diff --git a/Framework/DataHandling/src/LoadSpice2D.cpp b/Framework/DataHandling/src/LoadSpice2D.cpp
index ebe36076385c2027ac1426a42a707b19903df623..cff6bafad2b41d5657245710b16306a1684255af 100644
--- a/Framework/DataHandling/src/LoadSpice2D.cpp
+++ b/Framework/DataHandling/src/LoadSpice2D.cpp
@@ -315,7 +315,8 @@ std::vector<int> LoadSpice2D::getData(const std::string &dataXpath = "//Data") {
 
   // iterate every detector in the xml file
   for (const auto &detector : detectors) {
-    std::string detectorXpath = dataXpath + "/" + detector;
+    std::string detectorXpath =
+        std::string(dataXpath).append("/").append(detector);
     // type : INT32[192,256]
     std::map<std::string, std::string> attributes =
         m_xmlHandler.get_attributes_from_tag(detectorXpath);
diff --git a/Framework/DataHandling/src/LoadSpiceAscii.cpp b/Framework/DataHandling/src/LoadSpiceAscii.cpp
index d0124230bb1eca10da4c2b6cd6f8ebd94d7b4eaa..ebd8b83171e21563850a7111a0488e26feab96b9 100644
--- a/Framework/DataHandling/src/LoadSpiceAscii.cpp
+++ b/Framework/DataHandling/src/LoadSpiceAscii.cpp
@@ -515,11 +515,11 @@ std::string LoadSpiceAscii::processDateString(const std::string &rawdate,
     else if (formatterms[i].find('M') != std::string::npos) {
       month = dateterms[i];
       if (month.size() == 1)
-        month = "0" + month;
+        month.insert(0, 1, '0');
     } else {
       day = dateterms[i];
       if (day.size() == 1)
-        day = "0" + day;
+        day.insert(0, 1, '0');
     }
   }
 
diff --git a/Framework/DataHandling/src/PDLoadCharacterizations.cpp b/Framework/DataHandling/src/PDLoadCharacterizations.cpp
index 13a815e78fbc1091c5c62aaf6a42261cbd522e8f..af48503d046948c5c421fdd27486cf4b52cf2da1 100644
--- a/Framework/DataHandling/src/PDLoadCharacterizations.cpp
+++ b/Framework/DataHandling/src/PDLoadCharacterizations.cpp
@@ -210,10 +210,9 @@ std::vector<std::string> PDLoadCharacterizations::getFilenames() {
   std::vector<std::string> filenamesFromPropertyUnraveld;
   std::vector<std::vector<std::string>> filenamesFromProperty =
       this->getProperty("Filename");
-  for (auto outer : filenamesFromProperty) {
-    for (auto inner : outer) {
-      filenamesFromPropertyUnraveld.push_back(inner);
-    }
+  for (const auto &outer : filenamesFromProperty) {
+    filenamesFromPropertyUnraveld.insert(filenamesFromPropertyUnraveld.end(),
+                                         outer.cbegin(), outer.cend());
   }
   // error check that something sensible was supplied
   if (filenamesFromPropertyUnraveld.size() > 2) {
diff --git a/Framework/DataHandling/src/SaveFocusedXYE.cpp b/Framework/DataHandling/src/SaveFocusedXYE.cpp
index 90c8993fd0154c64a135a57c00411bf59b345e56..4b11a0b27c71771e8227b024d71689e2e779ecff 100644
--- a/Framework/DataHandling/src/SaveFocusedXYE.cpp
+++ b/Framework/DataHandling/src/SaveFocusedXYE.cpp
@@ -137,7 +137,7 @@ void SaveFocusedXYE::exec() {
 
     if ((!split) && out) // Assign only one file
     {
-      const std::string file(filename + '.' + ext);
+      const std::string file(std::string(filename).append(".").append(ext));
       Poco::File fileObj(file);
       const bool exists = fileObj.exists();
       out.open(file.c_str(), mode);
@@ -147,7 +147,8 @@ void SaveFocusedXYE::exec() {
                       // filename-i.ext
     {
       number << "-" << i + startingbank;
-      const std::string file(filename + number.str() + "." + ext);
+      const std::string file(
+          std::string(filename).append(number.str()).append(".").append(ext));
       Poco::File fileObj(file);
       const bool exists = fileObj.exists();
       out.open(file.c_str(), mode);
diff --git a/Framework/DataHandling/src/SaveGSS.cpp b/Framework/DataHandling/src/SaveGSS.cpp
index 09f05101fcc0dcbff2af394e19b002cf699a053a..f6a1870fe222b762a5a509725016d516dbfc5023 100644
--- a/Framework/DataHandling/src/SaveGSS.cpp
+++ b/Framework/DataHandling/src/SaveGSS.cpp
@@ -228,7 +228,7 @@ void SaveGSS::writeGSASFile(const std::string &outfilename, bool append,
       std::string ext = path.getExtension();
       // Chop off filename
       path.makeParent();
-      path.append(basename + number.str() + "." + ext);
+      path.append(basename).append(number.str()).append(".").append(ext);
       Poco::File fileobj(path);
       const bool exists = fileobj.exists();
       if (!exists || !append)
diff --git a/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroupFactory.h b/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroupFactory.h
index fd45198f439afd19a9be63a2f4e8d27661211ae1..49239db44a40d98a410ccdba3138dbca523d0b1a 100644
--- a/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroupFactory.h
+++ b/Framework/Geometry/inc/MantidGeometry/Crystal/SpaceGroupFactory.h
@@ -236,8 +236,8 @@ public:
 
       if (transformedSymbol != hmSymbol && !symbolExists) {
         subscribeUsingGenerator<TransformationSpaceGroupGenerator>(
-            number, transformedSymbol, hmSymbol + "|" + transformation);
-
+            number, transformedSymbol,
+            std::string(hmSymbol).append("|").append(transformation));
         transformedSpaceGroupSymbols.push_back(transformedSymbol);
       }
     }
diff --git a/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp b/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp
index bd39329746cd72c27efc4ab948855c53239e4b14..81bc7af0decf2c611ad2ee6b84056198b8b56461 100644
--- a/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp
+++ b/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp
@@ -261,12 +261,15 @@ InstrumentDefinitionParser::parseXML(Kernel::ProgressBase *prog) {
     // Each type in the IDF must be uniquely named, hence return error if type
     // has already been defined
     if (getTypeElement.find(typeName) != getTypeElement.end()) {
-      g_log.error("XML file: " + filename +
-                  "contains more than one type element named " + typeName);
+      g_log.error(std::string("XML file: ")
+                      .append(filename)
+                      .append("contains more than one type element named ")
+                      .append(typeName));
       throw Kernel::Exception::InstrumentDefinitionError(
-          "XML instrument file contains more than one type element named " +
-              typeName,
-          filename);
+          std::string(
+              "XML instrument file contains more than one type element named ")
+              .append(typeName)
+              .append(filename));
     }
     getTypeElement[typeName] = pTypeElem;
 
@@ -305,12 +308,15 @@ InstrumentDefinitionParser::parseXML(Kernel::ProgressBase *prog) {
     // Each type in the IDF must be uniquely named, hence return error if type
     // has already been defined
     if (getTypeElement.find(typeName) != getTypeElement.end()) {
-      g_log.error("XML file: " + filename +
-                  "contains more than one type element named " + typeName);
+      g_log.error(std::string("XML file: ")
+                      .append(filename)
+                      .append("contains more than one type element named ")
+                      .append(typeName));
       throw Kernel::Exception::InstrumentDefinitionError(
-          "XML instrument file contains more than one type element named " +
-              typeName,
-          filename);
+          std::string(
+              "XML instrument file contains more than one type element named ")
+              .append(typeName)
+              .append(filename));
     }
     getTypeElement[typeName] = pTypeElem;
 
diff --git a/Framework/Kernel/src/ConfigService.cpp b/Framework/Kernel/src/ConfigService.cpp
index e60311f488d1aaeebbafa679bf0f5a42221e5dc4..a15083587c3d8aede394c40b6363dc7f59159e6e 100644
--- a/Framework/Kernel/src/ConfigService.cpp
+++ b/Framework/Kernel/src/ConfigService.cpp
@@ -857,7 +857,7 @@ void ConfigServiceImpl::saveConfig(const std::string &filename) const {
       // If it does exist make sure the value is current
       std::string value = getString(key, false);
       Poco::replaceInPlace(value, "\\", "\\\\"); // replace single \ with double
-      updated_file += key + "=" + value;
+      updated_file.append(key).append("=").append(value);
       // Remove the key from the changed key list
       m_changed_keys.erase(key);
     }
@@ -957,9 +957,9 @@ void ConfigServiceImpl::getKeysRecursive(
   for (auto &rootKey : rootKeys) {
     std::string searchString;
     if (root.empty()) {
-      searchString = rootKey;
+      searchString.append(rootKey);
     } else {
-      searchString = root + "." + rootKey;
+      searchString.append(root).append(".").append(rootKey);
     }
 
     getKeysRecursive(searchString, allKeys);
diff --git a/Framework/Kernel/src/LogParser.cpp b/Framework/Kernel/src/LogParser.cpp
index 453a2570ae10f2d90fae63486904c125cee87885..0becfc1ffa73b9a8930f579fa3361f732ac7232b 100644
--- a/Framework/Kernel/src/LogParser.cpp
+++ b/Framework/Kernel/src/LogParser.cpp
@@ -62,8 +62,10 @@ Kernel::Property *LogParser::createLogProperty(const std::string &logFName,
       // if the line doesn't start with a time treat it as a continuation of the
       // previous data
       if (change_times.empty() || isNumeric) { // if there are no previous data
-        std::string mess =
-            "Cannot parse log file " + logFName + ". Line:" + str;
+        std::string mess = std::string("Cannot parse log file ")
+                               .append(logFName)
+                               .append(". Line:")
+                               .append(str);
         g_log.error(mess);
         throw std::logic_error(mess);
       }
diff --git a/Framework/Kernel/src/MultiFileValidator.cpp b/Framework/Kernel/src/MultiFileValidator.cpp
index 3e82afc892fc25b27127bf2c4cf23f381fe69496..4bb86416ba0ad24040da0bfce8c83f8bfbd484a5 100644
--- a/Framework/Kernel/src/MultiFileValidator.cpp
+++ b/Framework/Kernel/src/MultiFileValidator.cpp
@@ -66,7 +66,7 @@ std::string MultiFileValidator::checkValidity(
           accumulatedErrors =
               "Could not validate the following file(s): " + valueIt;
         else
-          accumulatedErrors = accumulatedErrors + ", " + valueIt;
+          accumulatedErrors.append(", ").append(valueIt);
       }
     }
   }
diff --git a/Framework/Kernel/src/NexusDescriptor.cpp b/Framework/Kernel/src/NexusDescriptor.cpp
index 357e235674cce1e6c5974de17fe959605f9c7a4c..3efd1c29011fc55152493066945571888012f503 100644
--- a/Framework/Kernel/src/NexusDescriptor.cpp
+++ b/Framework/Kernel/src/NexusDescriptor.cpp
@@ -245,7 +245,8 @@ void NexusDescriptor::walkFile(::NeXus::File &file, const std::string &rootPath,
   for (auto it = dirents.begin(); it != itend; ++it) {
     const std::string &entryName = it->first;
     const std::string &entryClass = it->second;
-    const std::string entryPath = rootPath + "/" + entryName;
+    const std::string entryPath =
+        std::string(rootPath).append("/").append(entryName);
     if (entryClass == "SDS") {
       pmap.emplace(entryPath, entryClass);
     } else if (entryClass == "CDF0.0") {
diff --git a/Framework/MDAlgorithms/src/CutMD.cpp b/Framework/MDAlgorithms/src/CutMD.cpp
index 114af43693d128fa6abe0b8a74b008c7ec570512..024f5545e9018d291eee051873f1daea1e85938b 100644
--- a/Framework/MDAlgorithms/src/CutMD.cpp
+++ b/Framework/MDAlgorithms/src/CutMD.cpp
@@ -446,7 +446,9 @@ void CutMD::exec() {
         vecStr = boost::algorithm::join(vec, ", ");
       }
 
-      const std::string value = label + ", " + unit + ", " + vecStr;
+      const std::string value =
+          std::string(label).append(", ").append(unit).append(", ").append(
+              vecStr);
       cutAlg->setProperty("BasisVector" + std::to_string(i), value);
     }
 
diff --git a/Framework/MDAlgorithms/src/MDTransfAxisNames.cpp b/Framework/MDAlgorithms/src/MDTransfAxisNames.cpp
index 9c4713e79bf2743b6d66941d167c69f0c3642166..af984187c4b5c7aeb7b78d1b91d83944232b8073 100644
--- a/Framework/MDAlgorithms/src/MDTransfAxisNames.cpp
+++ b/Framework/MDAlgorithms/src/MDTransfAxisNames.cpp
@@ -83,10 +83,10 @@ std::string makeAxisName(const Kernel::V3D &Dir,
       name += "-";
     }
     if (std::fabs(absDir[i] - 1) < eps) {
-      name += mainName + separator;
+      name.append(mainName).append(separator);
       continue;
     }
-    name += sprintfd(absDir[i], eps) + mainName + separator;
+    name.append(sprintfd(absDir[i], eps)).append(mainName).append(separator);
   }
 
   return name;