Too bad this doesn't work: struct Player { MapTile[] playerMap; // partial private knowledge of map Location destination; auto tile(Location loc) { return playerMap[loc]; } void foo() { if(destination.tile.hasMonster) ... } }