编程语言
首页 > 编程语言> > C++11的using与typedef的区别

C++11的using与typedef的区别

作者:互联网

两者都是给类型设置一个别名,区别是using可以给模板类设置别名,而typedef则不能模板类设置设置别名。其余情况没有什么区别。

#include <vector>
using namespace std;

template<typename T>
using myvector=vector<T>;

int main(){
  myvector<int> iv;
  return 0;
}

编译通过。

#include <vector>
using namespace std;

template<typename T>
typedef vector<T> myvector;

int main(){
  myvector<int> iv;
  return 0;
}

编译报错error: template declaration of ‘typedef’

而已经推演过的模板类是可以用typedef设置别名的

#include <vector>
using namespace std;

typedef vector<int> intvector;

int main(){
  intvector iv;
  return 0;
}

标签:11,typedef,myvector,int,别名,iv,using
来源: https://www.cnblogs.com/wangyu2017/p/16271075.html