4

N3337 で、§23.3.2.1/3 を読んでいます。

Anarrayは、コンテナーと可逆コンテナー (23.2) のすべての要件を満たしますarray

§23.2.1 の表 96 コンテナ要件ではX u;、事後条件が であるデフォルトの構築済みオブジェクトを示していますu.empty()。おそらく、次のようになります。

std::array<int, 0> a;

a.empty()出力する必要1があります。では、ここで「空」とはどういう意味ですか?

4

1 に答える 1

8

あなたはボーダーケースを見ています - サイズがゼロの配列は空ですか?その特定の質問を無視すると、標準的な引用は、std::array<T,N> arrデフォルトの構築では、一般的な は事後条件を満たさないと述べていますarr.empty()。実際、 anstd::array<T, N>empty()の場合のみN==0です。そして、この定義も自然です。std::array<T,N>::size()constexprwith 値Nであり、empty()と同義でなければなりませんsize() == 0

于 2015-01-30T04:55:28.953 に答える