[英]What is std::safe_string?
搜索谷歌代码搜索后 (我应该首先想到这个...)我发现了这个:
//tools-cgi.cpp
string safe_string (const char * s)
{
return (s != NULL) ? s : "";
}
它将NULL
s转换为零长度字符串。 虽然这不是标准的,但它可能是答案中提到的特定STL实现中的某种扩展。
没有标准的safe_string。 您在回答者的响应中看到的safe_string来自于私有STL扩展实用程序库。
谷歌的“stlext / stringext.h” ,你会在另一个论坛的帖子中看到相同的库。
没有std::safe_string
这样的东西
它不是C ++标准的一部分(但也许应该是?)
我一直在使用相同类型的辅助函数来避免std :: string使用NULL char * string抛出异常。 但它更像是:
// defined somewhere else as ""
extern const char * const g_strEmptyString ;
inline const char * safe_string(const char * p)
{
return (p) ? (p) : (g_strEmptyString) ;
}
没有开销,并且当我向它提供一个可能为NULL的char *字符串时没有std :: string的崩溃,但在这种特殊情况下,应该表现为空字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.