C++ std :: string在任何平台上都是100%RAII?

Kev*_*vin 0 c++ string raii

据我所知,std :: string是一个RAII对象,所以我不需要在声明后进行初始化.构造函数会自动处理这些东西.但是在任何平台或任何编译器上都有任何异常吗?

class TestString
{
public:
    TestString()
    {
        // m_str.clear(); or
        // m_str = "";
    }
    virtual ~TestString(){}

private:
    std::string m_str;
};
Run Code Online (Sandbox Code Playgroud)

非常简单的问题,谢谢!

Alo*_*ave 6

用于std::string构造空字符串的默认构造函数,长度为零个字符.这是所有实现的所有平台上的默认构造函数提供的保证.

  • @Kevin:是的.它是标准提供的保证,所有符合要求的实现都需要遵守它. (2认同)