我的代码有点如下:
#include <array>
class DoubleArray: std::array<double, 16> {
public:
void clear() {
fill(0.0);
}
};
现在我想使用std::array
的大小作为编译时常量。如果DoubleArray
只是typedef
到std::array
我可以使用std::tuple_size<DoubleArray>::value
但是使用继承而不是我得到以下编译器错误:
error: incomplete type ‘std::tuple_size<DoubleArray>’ used in nested name specifier
我见过tuple_size and an inhereted class from tuple?但是因为那只谈到std :: tuple我不认为它可以被应用。任何想法为什么这不起作用,如果有一个简单的方法使它工作?
答案 0 :(得分:1)
只需致电size()
- 对于数组,它就是constexpr
。
见这里:http://en.cppreference.com/w/cpp/container/array/size
或检查§23.3.2.1.3,其中定义为constexpr size_type size() noexcept;