一位C++开发者演示了在使用-O2优化编译时,比较std::string_view与std::string可能产生意外结果。文章以幽默的'灵异'方式呈现这一bug,但实际原因是std::string_view不以null终止,导致优化与非优化构建之间的比较行为差异。
背景
std::string_view于C++17引入,是一种不拥有字符序列的非持有权引用,不保证以null终止。string_view与string之间的比较在优化可能暴露底层缓冲区长度差异时会产生令人意外的结果。
- 来源
- Lobsters
- 发布时间
- 2026年11月2日 02:17
- 评分
- 5.0 / 10