std::array<int,0>
サイズがゼロの配列を持つとはどういう意味ですか?
これを投稿する前に SO で同様の質問をしましたが、これらの質問はすべて単純な配列型と C 言語に関するものであり、ほとんどが違法であると述べています。ただし、C++ ではarray<int,0>
許可されています。
cppreference.comによると
長さゼロの配列 (N == 0) には特殊なケースがあります。その場合、
array.begin() == array.end()
これは一意の値です。サイズがゼロの配列に対するfront()
orの呼び出しの効果は未定義です。back()
なぜ違法と定義されないのですか?