阅读C++源代码显然是一种很好的学习方式,当它是一个你很少了解的特性时,它就显得非常有趣.就标准库来源而言,由于名称的丑化,这很难实现.
在将源代码包含在标准库中之前,是否通过某种类型的源代码处理完成了uglifying?如果是这样,原始源代码会发生什么?是否有任何非uglified C++标准库源代码的存储库?
我在寻找有趣的C++ 11很快C++ 14种特别功能.
我无法想象保持这种形式的代码会非常有趣....
编辑:
有人建议在这里取消这个过程.
从标准库实现中学习时,请首先注意标准库必须遵守某些严格的约束,这些约束不适用于普通用户编写的代码.此外,标准C++库完成的一些操作有些深奥,我担心如果它们被普通用户的代码使用(如果你公司有一个低级库团队,他们可能会做一些类似的事情,虽然).特别是在约束标准库上需要遵守的是,所使用的名称都不会与用户在任何地方使用的任何名称冲突.由于用户可以定义有趣的宏,因此标准库需要在用户可见的上下文中使用为标准库保留的名称,例如头文件:
您特别不希望从标准C++库中复制的内容是包含保护的命名:这些通常以一个或两个下划线开头,并且都是大写字符.用户不会允许,除非它们被特别允许使用它们来使用这些标识符(例如,你可以使用__FILE__和__LINE__,但你是不是允许,例如,写_FOOBAR在程序中任何地方它可能由宏扩展(也就是,我想你可以写"_FOOBAR").
回答你的实际问题:我所知道的所有标准C++库实现(libstdc ++,libc ++,Dinkumware,RougeWave和我自己的)都使用"uglified"名称编写,并且没有程序将它们转换为这种形式.基本上,任何程序都必须处理许多不太可行的异常.我认为,标准的C++库实现者只是习惯了有趣的名字.对于我的实现,我已经努力用一个共同的前缀命名所有内容,以便可以使用一个简单的sed脚本撤消uglification,但我没有在任何地方都遵循该模式.
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |