创建内联std :: string

时间:2017-07-24 00:24:56

标签: c++

是否可以在不创建变量的情况下初始化std::string

我希望实现的目标:

throw std::runtime_error("Error: " + strerror(errno));

我目前所做的事情:

std::string error = "Error: ";
std::string errmsg(strerror(errno));
throw std::runtime_error(error + errmsg);

1 个答案:

答案 0 :(得分:7)

暂时从其中一个中取出:

throw std::runtime_error(std::string("Error: ") + strerror(errno));

operator+ overload for std::string可以const char*以及std::string

如果您有权访问C ++ 14,您可以using namespace std::literals这样做:

throw std::runtime_error("Error: "s + strerror(errno));