| 12345678910111213141516171819202122232425262728293031323334353637383940 | #include <string>#include <utility>template <typename... Args>std::string cmStrCat(Args&&... args){  return "";}std::string a = "This is a string variable";std::string b = " and this is a string variable";std::string concat;// Correction neededvoid test1(){  concat = cmStrCat(a, b);  concat = cmStrCat(a, " and this is a string literal");  concat = cmStrCat(a, 'O');  concat = cmStrCat("This is a string literal", b);  concat = cmStrCat('O', a);  concat = cmStrCat(a, " and this is a string literal", 'O', b);  concat = cmStrCat(concat, b);  concat = cmStrCat(concat, " and this is a string literal");  concat = cmStrCat(concat, 'o');  concat = cmStrCat(concat, b, " and this is a string literal ", 'o', b);  std::pair<std::string, std::string> p;  concat = cmStrCat(p.first, p.second);}// No correction neededvoid test2(){  a = b;  a = "This is a string literal";  a = 'X';  cmStrCat(a, b);}
 |