検討:
#include <vector>
int main()
{
std::vector <int> v;
v.reserve (100);
v[1] = 42;
}
上記のコードが Undefined Behavior を呼び出すことは承知しています。これは、 の呼び出しサイトでv[1]
、 によるベクトルのサイズv.size()
が < 1 であるためです (ゼロです)。
ただし、これが実際には未定義の動作であることを直接的または間接的に明確にする引用を求めて、C++ 標準に目を通すのに最後の 1 時間ほどを費やしました。
たぶん、私は明らかなことを見逃しています。これを解決するために、少なくとも C++03 およびオプションで C++11 標準からの引用を提供できますか?