假设看起来模糊的代码是这样的:
bool LoadGame() {
vector<string> SaveFile = LoadFromSaveFile();
Data = SaveFile.begin();
LoadCharacters(&Data);
// containing LoadOneCharacter(&Data) calls
LoadLocations(&Data);
// >> LoadOneLocation(&Data) calls
// etc.
}
有没有办法在 LoadCharacters()、LoadLocations() 等中检查 Data 当前是否指向 SaveFile::end(),而不将 SaveFile::end() 传递给 LoadGame() 调用的所有函数?
(如果仅取消引用 end() 和超越抛出异常而不是产生未定义的行为!)