是否可以在std::string不创建变量的情况下初始化?
我想要完成的事情:
throw std::runtime_error("Error: " + strerror(errno));
Run Code Online (Sandbox Code Playgroud)
我目前做了什么:
std::string error = "Error: ";
std::string errmsg(strerror(errno));
throw std::runtime_error(error + errmsg);
Run Code Online (Sandbox Code Playgroud)
只需从其中一个中暂时出现:
throw std::runtime_error(std::string("Error: ") + strerror(errno));
Run Code Online (Sandbox Code Playgroud)
该operator+过载std::string可以采取const char*和std::string.
如果您有权访问C++ 14,您可以using namespace std::literals这样做:
throw std::runtime_error("Error: "s + strerror(errno));
Run Code Online (Sandbox Code Playgroud)