在从std :: array派生的类上使用std :: tuple_size

时间:2012-06-24 13:19:02

标签: c++ c++11

我的代码有点如下:

#include <array>

class DoubleArray: std::array<double, 16> {
public:
    void clear() {
        fill(0.0);
    }
};

现在我想使用std::array的大小作为编译时常量。如果DoubleArray只是typedefstd::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我不认为它可以被应用。任何想法为什么这不起作用,如果有一个简单的方法使它工作?

1 个答案:

答案 0 :(得分:1)

只需致电size() - 对于数组,它就是constexpr

见这里:http://en.cppreference.com/w/cpp/container/array/size 或检查§23.3.2.1.3,其中定义为constexpr size_type size() noexcept;