我接受了一个练习,我需要使用类型别名来“引用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 ...
答案 0 :(得分:6)
比较这两个声明
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];
这也是一个有效的声明。:)