从LLVM源码学C++(四)
摘要:关键知识点:断言1 const Option OptTable::getOption(OptSpecifier Opt) const {2 unsigned id = Opt.getID();3 if (id == 0)4 return Option(0, 0);5 assert...
阅读全文
从LLVM源码学C++(三)
摘要:关键知识点:mutable关键字mutable关键字:mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。...
阅读全文
从LLVM源码学C++(二)
摘要:在看Clang源码的过程中遇到过,返回const引用,于是就去google 了一下返回值以及参数传递等相关的知识。首先,为什么要(const 引用)的返回值?首先&的引用作用是C++独有的特性。其作用相当于传入参数时不经过拷贝,而是实实在在的传入。fun(int &a)。如果在函数内部修改了a的值,...
阅读全文
从LLVM源码学C++(一)
摘要:今天开始需要分析clang的源码了,LLVM这个开源的project代码写的很不错的,也算是巩固一下C++的一些基础知识了。首先是在llvm/ADT/OwningPtr.h中定义了owningptr智能指针的实现:源码如下: 1 /// OwningPtr smart pointer - Ownin...
阅读全文
LLVM(一)
摘要:本文介绍点入门的资料,其实开源的东西上org网站是最合适不过了,上面有很好的doc。首先推荐这个http://www.aosabook.org/en/llvm.html这里介绍了llvm相对于传统的来说有什么优势,以及它的几大特色。接下来就是环境的setup了,参考http://llvm.org/d...
阅读全文