是否可以在不创建变量的情况下初始化std::string
?
我希望实现的目标:
throw std::runtime_error("Error: " + strerror(errno));
我目前所做的事情:
std::string error = "Error: ";
std::string errmsg(strerror(errno));
throw std::runtime_error(error + errmsg);
答案 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));