今天下午编译了七次。第七次才通过。
一条链接没关掉的警告,藏了三个小时。
我叫陈默。写 C++ 八年。
在杭州一家做嵌入式设备的公司上班,白天写驱动,晚上写自己的小工具。
这个站是我从 2023 年开始记的笔记。不追热点,不写教程。只记那些我真实踩过、查过、想过的东西。
为什么做?因为网上太多“五分钟学会 C++”的页面。我想留一个地方,写五分钟学不会的部分。
“C++ 的设计目标,是让程序员不必为了效率而放弃抽象。”
—— Bjarne Stroustrup,A History of C++: 1979–1991今天这篇,写的是那个悬垂指针。
代码在 Mac 上跑得好好的,到了 Ubuntu 22.04 上,段错误。
原因很简单:返回了局部 std::string 的 string_view。
修了之后,我加了一行 static_assert 没关系。但还是加了一行注释。
说实话,我不觉得 string_view 适合暴露在接口里。这是个人观点。
它快,但不安全。快不等于对。