在 stackoverflow 上一个问题的一段代码中,我看到了这个,对我来说很奇怪,using
声明:
template <std::size_t SIZE>
class A
{
public:
...
using const_buffer_t = const char(&)[SIZE];
...
};
有人可以提出以下问题:
答案 0 :(得分:18)
答案 1 :(得分:14)
using
声明是C ++ 11中引入的新语法;它引入了类型别名,指定const_buffer_t
现在是类型const char(&)[SIZE]
的别名。在这方面,using
的使用与typedef
基本相同(尽管using
类型别名为more flexible)。
至于我们所讨论的实际类型(const char(&)[SIZE]
),它是对大小为SIZE
的数组的引用;对数组的引用很少使用,但可以使用它们:
int param[5]
它被解析为int *
); 另请参阅array FAQ,其中详细解释了这些内容。