在C ++中使用奇怪的声明
在stackoverflow中的一个前面的问题中的一段代码中,我看到了这个,对我来说很奇怪, using
声明:
template <std::size_t SIZE>
class A
{
public:
...
using const_buffer_t = const char(&)[SIZE];
...
};
有人可以解决以下问题吗?
这是一个类型别名,它是自c ++ 11以来可用的新语法。
你实际上在做什么是typedefing数组的类型
const_buffer_t
将是长度= SIZE的const char数组
using
声明是C ++ 11中引入的新语法; 它引入了一个类型别名,指定const_buffer_t
现在是类型为const char(&)[SIZE]
的别名。 在这方面,这种使用的using
是基本相同typedef
(虽然using
类型别名更加灵活)。
至于我们正在讨论的实际类型( const char(&)[SIZE]
),它是对SIZE
数组的引用; 很少使用对数组的引用,但可以使用它们:
int param[5]
,它也被解析为int *
); 另请参阅数组FAQ,其中大部分内容将详细解释。
链接地址: http://www.djcxy.com/p/78647.html