C++標準[秒5.7]は次のように述べています。
ポインタオペランドと結果の両方が同じ配列オブジェクトの要素を指している場合、または配列オブジェクトの最後の要素を1つ過ぎている場合、評価によってオーバーフローが発生することはありません。それ以外の場合、動作は定義されていません。
それで、配列以外のタイプのポインタが未定義であると仮定するのは正しいですか?
例えば:
int a = 0;
vector<int> v(&a, (&a)+1);
上記のスニペットはコンパイルされ、(g ++で)問題なく動作しますが、それは有効ですか?