这个功能的问题

时间:2016-03-01 23:34:44

标签: c++

有人告诉我这个功能有问题,但是在做了研究并试图自己使用之后,我似乎无法找到它的问题。有人只是想惹我?

std::string foo() throw()
{
    std::string s("hello world");
    return s;
}

1 个答案:

答案 0 :(得分:7)

根据您的编译器设置,如果字符串内容的后备内存分配失败,std::string可能会从其构造函数中抛出。这会违反你提出的throw()条款。

否则,代码很好,但当然可以缩短代码:

std::string foo()
{
    return "hello world";
}