2

我的代码如下所示:

#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 和一个从元组继承的类?但因为那只谈论 std::tuple 我不认为它可以应用。任何想法为什么这不起作用以及是否有一种简单的方法可以使它起作用?

4

1 回答 1

1

只需调用size()- 对于数组,它是一个constexpr.

请参见此处:http : //en.cppreference.com/w/cpp/container/array/size 或查看第 23.3.2.1.3 节定义为constexpr size_type size() noexcept;

于 2012-06-24T13:25:39.270 回答