読者です 読者をやめる 読者になる 読者になる

VCとGCCにバグ報告 - std::arrayのtuple_elementとget()の境界チェック

C++ GCC VC++

Bug 53080 - tuple interface to std::array doesn't check bounds

std::arrayに対するstd::tuple_elementの特殊化で、境界チェックが行われていない


std::arrayに対するstd::tuple_elementの特殊化とstd::get()関数のオーバーロードでは、インデックス値IがarrayのサイズNより小さくない場合、プログラムは不適格である、という仕様があります。
GCC 4.7.0のlibstdc++にその境界チェックが両方なかったので、報告しておきました。
VC10は、std::get()の方にはstatic_assertで境界チェックがあったので、std::tuple_elementの方だけ報告しました。