On Thursday, 8 November 2012 at 17:50:48 UTC, DypthroposTheImposter wrote:
That example would crash hard if those stack allocated shapes were not in scope...

Making it work safely would probably require std::shared_ptr usage

But the correct implementation depends on the required ownership semantics. I guess with Canvas and Shapes, you'd expect the canvas to own the shapes that are passed to it. But imagine if, instead of Canvas and Shape, you have Game and Player. The game needs to pass messages to all kinds of different types of players, but game doesn't *own* the players. In that case, if a game passes a message to a player who's not in scope anymore, then that's a bug in the code that *uses* game, and not in the implementation of game. So, if Canvas isn't supposed to own those Shapes, then the above implementation of Canvas is *not* buggy.

Reply via email to