从boost库源代码学习c ++

cpp*_*guy 5 c++ boost

我对c ++很感兴趣,想要掌握这门语言.我读了很多关于c ++的书.我想阅读一些库源代码以提高我的技能,但是当我阅读boost库源代码时,我发现它非常困难.
任何人都可以给我一些关于如何阅读提升源代码的建议,在我能够理解它之前我应该阅读哪些关于c ++的书?

Jar*_*Par 15

如果你是从C++开始,那么boost源代码可能不是最好的地方.这是巫师们在这里闲逛的地方,他们处理模板魔法.我认为更好的起点是Scott Myers和Herb Sutters的书籍(按此顺序).

斯科特的一些版本的书可能有点过时,但它们在基本面上仍然很强.赫伯的书很多次都值得阅读,是一本非常宝贵的工具.一旦你通过这两位作者,那么将是解决增强源代码的好时机.

  • @OJ,你的动作不够快;) (2认同)

OJ.*_*OJ. 14

我无法就如何阅读增强代码提出建议,但我可以提供一些其他建议.

停止阅读并开始写作 :)阅读很有价值,但除非你自己开始编写代码,否则你不会在任何地方学习.从基础开始.阅读初学者书籍并输入样本(不要复制和粘贴).您将通过必须修复由于错误输入而导致的错误来学习.在简单的应用程序中使用您自己的一些想法并从那里开始.

通过阅读提升源代码开始是一种可靠的方法,可以吓跑自己的语言和/或最终与很多问题混淆.

从小处着手,一路向上.

  • 是的,如果你对boost感兴趣,可以开始实际使用它 - 一旦你可以使用它,你也可以在幕后看,你将更好地了解事情是如何挂在一起的 (2认同)

iai*_*ain 13

既然你提到你想要学习元编程的黑暗艺术,那么我会推荐Andrei Alexandrescu的"现代C++设计".

元编程是一个非常复杂的领域,大多数时候都不需要.一旦你了解它,就很容易认为它可以解决你所有的问题.它成为你最喜欢的锤子.

在将其添加到您自己的代码之前,我还建议成为基于元编程(如boost和loki)的库的非常熟练的用户.

两个不同的程序员在我负责的代码库的部分内容中使用了元编程.虽然他们是熟练的程序员,但商业产品不应该像操场一样对待.这些可能是我们现在代码库中最糟糕的区域,当您添加对新编译器的支持时非常复杂且非常脆弱.如果我在编写代码时对代码负责,那么它们就不会在这里,现在它们的代价太贵了.

简而言之,除非您是图书馆作家,否则很少需要元编程.如果没有一个非常有成就的图书馆用户,你就不能成为图书馆作家.


Ape*_*ago 8

我认为boost使用了很多高级的c ++功能,比如模板等.Boost库往往非常复杂,因为它们试图遵循严格的编程标准和样式,以便与STL之类的东西兼容.

很简单,如果你不理解它,你可能已经过头了.如果你理解它,你无论如何都不需要阅读它.如果你不知道如何游泳,不要跳入水中......你基本上试图游泳瀑布.