std::string tends to be more complicated because of the small string optimization. Most debuggers I've used don't handle that correctly out of the box, even if sorting it out really isn't difficult.

Almost all game developers use Visual Studio, and VS has supported visualization of all STL containers(including string) since VS2005.


This is really missing the point. He knows RAII is useful and he knows RAII solves freeing free'd memory. Maybe it's time to re-watch the video.

 I watched it. None of what he said made much sense.
His claims:
1. RAII is bad because exceptions.
  -Nothing forces to use exceptions, so irrelevant
2. RAII is bad because you must write copy constructor,destructor etc each time.
  -No you write a few basic template classes and reuse them.



Regarding exceptions, they can be used incorrectly, but I think they tend to provide better error handling than return codes *because no one ever checks return codes*. And when you do pathologically handle error codes, the amount of code duplication can be tremendous, and the chance for errors involving improper cleanup can be quite high. Though again, RAII can be of incredible use here.

That is all true, I agree that exceptions are better than error codes.
But for games, the general design is that errors are impossible.
The game should never fail so exceptions serve little purpose.

-ran out of memory? Shut game down, this should not happen
-couldn't open a file? Shut game down, this should never happen
-out of bounds array access, invalid iterator etc: abort game, found during development, fixed, should never happen.

-networking? This is one place where you do need to handle errors, but do you need exceptions just to handle this one case? Probably not

Reply via email to