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

Dav*_*Far 5 c++ deprecated c++11 c++14

由于《Effective C++》这本书似乎 仍然值得阅读,并且最好从《Effective C++》系列开始,我想知道哪些建议的解决方案/实现我不需要详细理解/记住,因为 C++11 或更高版本中有更好的解决方案。所以:

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


细节:

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

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

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

Chr*_*phe 6

《Effective C++》中的许多秘诀仍然适用于 C++11。顺便说一句,Effecive Modern C++重点关注 C++11 的变化。

这个问题很广泛,但我想到的是:

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




许多例子可以简化,使用autorange for