std::array::empty()
必要なシーンに今まで遭遇していなかった事もあり、std::array::empty()の存在と動作なんて考えた事も無かった。実際問題としてstd::array::empty()が存在し使えるのかは規格書開くより実装確認した方が早いのでとりあえずideoneに入れてみた。
source
#include <array> #include <iostream> int main(){ std::array<int,0> a; std::cout << std::boolalpha << a.empty(); }
result
true
コンパイルエラーも出ず(つまり少なくともgcc-4.5.1ではstd::array::empty()は定義されている)、サイズ0で作成したstd::arrayのemptyはtrueを得られた。N3337§23.3.2.1 を読むと、std::arrayにもempty()メンバー関数は仕様に含まれていた。
ちなみにstd::array
…実用コード上でstd::arrayのemptyを使う機会は机上の空論であれ事実上無いと言えそうな気はするけれど。まあ、考えなくていいやそれは・x・;