我不确定我是否正确措辞,因为这是一个有点奇怪的情况。基本上我找到了一些这样的代码:
template<class T>
struct X { typedef T Type; };
template<class T>
struct X<const T[]> { typedef T Type[]; }
当我意识到这似乎不适用于第二个示例时,我正在更改 typedef
以使用 C++11 using
类型别名语法。
即不可能做到:
template<class T>
struct X<const T[]> { using Type[] = T; }
这是为什么呢?这是标准委员会的"疏忽"吗?
正确的语法是:
using Type = T[];
它定义了Type
的类型为"未知T
边界数组"。