c++ - 将 nullptr 分配给 std::string 是否安全?

标签 c++ string c++-standard-library

我正在做一个小项目,遇到了以下情况:

std::string myString;
#GetValue() returns a char*
myString = myObject.GetValue();

我的问题是如果 GetValue() 返回 NULL myString 变成一个空字符串?它是未定义的吗?还是会出现段错误?

最佳答案

有趣的小问题。根据 C++11 标准,第 11 节。 21.4.2.9,

basic_string(const charT* s, const Allocator& a = Allocator());

要求:s 不能是空指针。

由于标准不要求库在不满足此特定要求时抛出异常,因此传递空指针似乎会引发未定义的行为。

关于c++ - 将 nullptr 分配给 std::string 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10771864/

相关文章:

c++ - 如何将可变参数转换为容器类?

c++ - 是否可以将 boost 累加器与 vector 一起使用?

c - 在函数中传递字符串 (C)

python - 创建一个正方形

c# - Winform TextBox无法显示文字

c++ - 如果超时已过,如何中止 async()

c++ - sizeof(T) 值的标准类型特征

c++ - 如何计算 mahadistance 的协变矩阵

c++ - map::count 后跟 map::operator[] 的效率

c++ - 多重赋值 (a = b) = c 语法如何工作?