可以使用 using 为数组键入别名吗?
Can using be used to type alias an array?
我不确定我的措辞是否正确,因为这有点奇怪。
基本上我找到了一些这样的代码:
template<class T>
struct X { typedef T Type; };
template<class T>
struct X<const T[]> { typedef T Type[]; }
当我意识到这似乎不适用于第二个示例时,我正在更改 typedef
s 以使用 C++11 using
类型别名语法.
即这是不可能的:
template<class T>
struct X<const T[]> { using Type[] = T; }
这是为什么?这是标准委员会的'oversight'吗?
正确的语法是:
using Type = T[];
定义 Type
的类型为 "array of unknown bound of T
".
我不确定我的措辞是否正确,因为这有点奇怪。 基本上我找到了一些这样的代码:
template<class T>
struct X { typedef T Type; };
template<class T>
struct X<const T[]> { typedef T Type[]; }
当我意识到这似乎不适用于第二个示例时,我正在更改 typedef
s 以使用 C++11 using
类型别名语法.
即这是不可能的:
template<class T>
struct X<const T[]> { using Type[] = T; }
这是为什么?这是标准委员会的'oversight'吗?
正确的语法是:
using Type = T[];
定义 Type
的类型为 "array of unknown bound of T
".