在 c + + 11中'typedef'和'using'之间有什么区别?

I know that in C++11 we can now use using to write type alias, like typedefs:

typedef int MyInt;

Is, from what I understand, equivalent to:

using MyInt = int;

And that new syntax emerged from the effort to have a way to express "template typedef":

template< class T > using MyType = AnotherType< T, MyAllocatorType >;

But, with the first two non-template examples, are there any other subtle differences in the standard? For example, typedefs do aliasing in a "weak" way. That is it does not create a new type but only a new name (conversions are implicit between those names).

Is it the same with using or does it generate a new type? Are there any differences?

转载于:https://stackoverflow.com/questions/10747810/what-is-the-difference-between-typedef-and-using-in-c11

查看全部
csdnceshi76
斗士狗
2012/05/25 02:39
  • c++
  • using-declaration
  • typedef
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

4个回复