我得到了一个练习,我需要使用类型别名来"引用3个整数".虽然我发现成功使用typedef
我无法通过using
引入来复制它c++11
.
代码:
typedef int (& int_ref)[3]; \\success
using int_ref2 = (int &) [3]; \\error
我应该只使用类似......
using int_ref2 = int [3];
int_ref2 & iruvar ...
比较这两个声明
typedef int (& int_ref)[3]; \\success using int_ref2 = (int &) [3]; \\error
如您所见,存在差异:在第二个声明中,类型说明符int
位于括号内.
所以把它放在括号之外
using int_ref2 = int( & )[3];
您所需要的只是将括号内的typedef中使用的类型名称相对于等式符号移动到左侧.
使用using声明的优点是它具有更严格和清晰的风格.
例如,将它与以下typedef声明进行比较
int typedef (& int_ref)[3];
这也是一个有效的声明.:)