漠然と次のように見えるコードを想定します。
bool LoadGame() {
vector<string> SaveFile = LoadFromSaveFile();
Data = SaveFile.begin();
LoadCharacters(&Data);
// containing LoadOneCharacter(&Data) calls
LoadLocations(&Data);
// >> LoadOneLocation(&Data) calls
// etc.
}
LoadGame() によって呼び出されるすべての関数に SaveFile::end() を渡さずに、LoadCharacters()、LoadLocations() などの中で Data が現在 SaveFile::end() を指しているかどうかを確認する方法はありますか?
(end() 以降の逆参照のみが、未定義の動作を生成する代わりに例外をスローした場合!)