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

Zai*_*han 6 c++ arrays reference declaration c++11

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

Vla*_*cow 6

比较这两个声明

typedef int (& int_ref)[3]; \\success

using int_ref2 =  (int &) [3]; \\error 
Run Code Online (Sandbox Code Playgroud)

如您所见,存在差异:在第二个声明中,类型说明符int位于括号内.

所以把它放在括号之外

using int_ref2 =  int( & )[3];
Run Code Online (Sandbox Code Playgroud)

您所需要的只是将括号内的typedef中使用的类型名称相对于等式符号移动到左侧.

使用using声明的优点是它具有更严格和清晰的风格.

例如,将它与以下typedef声明进行比较

int typedef (& int_ref)[3];
Run Code Online (Sandbox Code Playgroud)

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

  • 为了我的理智,还删除了`(&)`中的多余空格! (3认同)