…rors The String Error class has three constructors . StringError::StringError(const Twine &S, std::error_code EC) StringError::StringError(std::error_code EC, const Twine &S) StringError::StringError(std::string &&S, std::error_code EC, bool PrintMsgOnly) When we use the `createStringError(std::error_code, char const *, ... )` it ends up using twine variant and ends up creating a new string twice