比如说第25页,讲到资源分配:
void Fun(shared_ptr<W> sp1, shared_ptr<W> sp2);
// ...
Fun(shared_ptr<W>(new W), shared_ptr<W>(new W));
说这样不安全,因为编译器可能乱序,于是两个W都分配内存了然后一个的ctor抛异常了会导致另一个内存没有释放。
然后它的推荐做法是总是先out of line创建资源:
shared_ptr<W> sp1(new W), sp2(new W);
Fun(sp1, sp2);
这个在新标准下就是过时的。
首先现在shared_ptr应该用make_shared创建,即高效又安全。
然后最初的写法在C++17之后也变得安全了。
最后是它的推荐写法造成的问题就是鼓励多行代码,影响了可读性也在一定程度上影响了效率。
当然了。我相信很多东西肯定是不会过时的。老书也有价值。
这里给个github直接看的链接,可以不必用百度了。
https://github.com/caosonglin/MyDocument/blob/master/%5BC%2B%2B%E7%BC%96%E7%A8%8B%E8%A7%84%E8%8C%83101%E6%9D%A1%E8%A7%84%E5%88%99%E3%80%81%E5%87%86%E5%88%99%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%5D.Herb.Sutter.Andrei.Alexandrescu%5D.pdf
【 在 z16166 (Netguy) 的大作中提到: 】
: 标 题: Re: 《c++编程规范101条规则、准则最佳实践》
: 发信站: 水木社区 (Wed May 20 15:23:36 2020), 站内
:
: 谷歌编码规范的内容比这个应该是少很多
:
: 感觉这书主要是代码的design原则,没看出来哪里明显过时或者错误,只是没cover一些新的feature,比如你说的move
:
:
: 【 在 here080 的大作中提到: 】
: : 任何一个都可以。
: : 比如谷歌公开的编码规范就挺好。
: :
:
: --
:
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 123.118.67.*]
--
FROM 76.126.252.*