众所周知,C++11 添加了一个 null 终止符std::basic_string(这不计入大多数成员函数)。但是当我阅读cpp ref时,我发现对 UB 的取消引用(这一段与 std::vector 的段落end()几乎相同)。为什么会出现这种情况?或者这是 cpp ref 的错误(请提供此文档以进行验证)?
std::basic_string
end()
我尝试过 GNU C++,但不幸的是 __gnu_debug 似乎不包含std::string迭代器检查器。Clang++ 的消毒剂也没有。
std::string
c++ iterator stdstring undefined-behavior c++17
c++ ×1
c++17 ×1
iterator ×1
stdstring ×1
undefined-behavior ×1