是否可以使用'using'来声明对3个整数类型别名的引用?

时间:2015-12-11 14:56:08

标签: c++ arrays c++11 reference declaration

我接受了一个练习,我需要使用类型别名来“引用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 ...

1 个答案:

答案 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];

这也是一个有效的声明。:)