有人告诉我这个功能有问题,但是在做了研究并试图自己使用之后,我似乎无法找到它的问题。有人只是想惹我?
std::string foo() throw()
{
std::string s("hello world");
return s;
}
答案 0 :(得分:7)
根据您的编译器设置,如果字符串内容的后备内存分配失败,std::string
可能会从其构造函数中抛出。这会违反你提出的throw()
条款。
否则,代码很好,但当然可以缩短代码:
std::string foo()
{
return "hello world";
}