2

次のようなコードがあります。

#include <array>

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

std::arrayここで、のサイズをコンパイル時定数として使用したいと思います。単にtoDoubleArrayを使用できますが、代わりに継承を使用すると、次のコンパイラ エラーが発生します。typedefstd::arraystd::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 に答える