云服务器

c++11中的using关键字

2017-12-25 10:57:20 0

刚进入ceph源码感觉很多怪怪的语法:

像上图的bufferlist不是一个类,它的其实是 ceph::list 类,如下图:

那为什么能直接用bufferlist实例化对象呢,经过一番搜索,原来在 ceph/src/include/buffer_fwd.h 里有这么一个using,如下图:

这是c++11的新玩法,using具有像typedf的功能,看下面的测试代码:

 

 

#include "iostream"

 

using namespace std;

namespace lkx{

namespace buffer {

class list

{

public:

void say()

{

cout<< "good" << endl;

}

};

}

using bufferlist = buffer::list;

//等同于:

//typedef buffer::list bufferlist;

}

 

using namespace lkx;

int main()

{

bufferlist l;

l.say();

 

return 0;

}

 

编译:记得加上-std=c++11

g++ -std=c++11 -o test test.cpp

 

 

上一篇: 无

微信关注

获取更多技术咨询