【发布时间】:2020-02-13 13:22:01
【问题描述】:
标题几乎说明了一切。
void f(const char*)
到
void f(std::string_view)
安全吗?如果没有,有什么陷阱?
std::string_view 语义规定数组不一定是空终止的,这可能是f 内部的一个真正问题,因为已考虑到这一点(例如,如果将原始指针传递给期望空终止的函数在f 内)。
【问题讨论】:
-
C++ 中没有什么是“安全的”。您必须充分了解每个更改的含义。只有您才能确定这在您的特定程序中是否“安全”。也许是,也许不是,只有你可以访问完整的程序,只有你自己才能弄清楚。
-
@SamVarshavchik 这个问题是在普遍接受的语义范围内。
-
问题是,如果你问两个C++开发者“X”是否是“普遍接受的”,你会得到三个不同的答案。
-
你会在 cmets 部分得到它们。
标签: c++ c++17 null-terminated string-view