哪些有效的C++项目可以通过C++11更好地实现?如何

Which Effective C++ Items can be implemented better via C++11? How?

本文关键字:更好 实现 如何 C++11 可以通过 有效 C++ 项目      更新时间:2023-10-16

由于《高效C++》一书仍然值得一读,也是从Effective C++系列中最好的开始,我想知道哪些建议的解决方案/实现我不需要详细理解/记忆,因为C++11或更高版本中有更好的解决方案。因此:

哪些有效的C++项目可以通过C++11或更高版本实现得更简单或更好现在如何实现它们,以哪种方式更好?


详细信息:

由于在C++11中有许多C++习惯用法被弃用,我想这也影响了《高效C++》一书中的解决方案。例如,看看它的目录,我想(因为我还没有读过这本书)

  • 第6项(明确禁止使用您不想要的编译器生成的函数)通过=delete变得更简单
  • 项17(在独立语句中的智能指针中存储新对象)通过make_shared(和C++14的make_unique)变得更简单
  • 第21项(当必须返回对象时不要试图返回引用)通过移动语义变得更简单、更高效
  • 第55项(熟悉Boost)现在有更少的例子,因为许多Boost功能也是C++11或更高版本的一部分

正确吗?还有吗?这些项是如何在现代C++中实现的?

有效C++中的许多配方仍然适用于C++11。顺便说一句,Effecive Modern C++关注C++11的变化。

这个问题很宽泛,但我想到了:

5) 仍然正确,但不要忘记move构造函数和赋值
6) 仍然正确,但现在更容易了,正如您已经解释的那样
13)原理仍然正确,但是忘记了auto_ptr,并使用了shared_ptrunique_ptr
14)仍然正确,不过用shared_ptr简化了
17)仍然是真的,但现在更容易了,正如您已经解释过的
18)仍然是假的,但更喜欢枚举类而不是枚举
54)仍然适用,但适用于新的库
55)仍然正确,尽管现在标准中有更多的增强功能

使用autorange for可以简化许多示例