创建内联std :: string

dru*_*rum 6 c++

是否可以在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)

Nic*_*las 8

只需从其中一个中暂时出现:

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)