Overview
We have a number of calls of the form GetXXXs (e.g. GetPlayers(), GetStrategies(), GetChildren()) which are implemented currently as returning a container of (smart) pointers to game elements. This was a very useful step for being able to evolve code towards modern C++ and using STL algorithms, but the allocation and copying is inefficient.
We will now replace these with classes which encapsulate collections of game objects, written for efficient access and iteration.
To do
Overview
We have a number of calls of the form
GetXXXs(e.g.GetPlayers(),GetStrategies(),GetChildren()) which are implemented currently as returning a container of (smart) pointers to game elements. This was a very useful step for being able to evolve code towards modern C++ and using STL algorithms, but the allocation and copying is inefficient.We will now replace these with classes which encapsulate collections of game objects, written for efficient access and iteration.
To do
GameRep::GetPlayers()GameNodeRep::GetChildren()