什么是std :: safe_string?

Mot*_*tti 7 c++ string

我的一个问题答案包括以下代码行:

label = std::safe_string(name); // label is a std::string
Run Code Online (Sandbox Code Playgroud)

意图似乎是字符串文字的包装(因此可能不会发生分配).我从来没有听说过safe_string,显然也没有谷歌(我也不能在98标准中找到它).

有谁知道这是关于什么的?

Mot*_*tti 8

搜索谷歌代码搜索后(我应该首先想到这个...)我发现了这个:

//tools-cgi.cpp
string safe_string (const char * s)
{
    return (s != NULL) ? s : "";
}
Run Code Online (Sandbox Code Playgroud)

NULLs转换为零长度字符串.虽然这不是标准的,但它可能是答案中提到的特定STL实现中的某种扩展.


小智 6

没有标准的safe_string.您在回答者的响应中看到的safe_string来自于私有STL扩展实用程序库.

谷歌的"stlext/stringext.h",你会在另一个论坛的帖子中看到相同的库.