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