You discovered a bug in the engine, and you are sure that it is not a problem of your code? Just post it in here. Please read the bug posting guidelines first.
i know Vitek, I think that horse has been beaten to death. STD libraries would be smarter to use, but they aren't going to change it. Or do you think if we keep bugging them, they'll change????
I guess we could drop these classes more easily as soon as VC++6 support is dropped. But this seems to be an everlasting story, so it's highly unlikely that we drop those helper classes in favor of STL.
Moreover, those bugs should be finite and we keep on hunting them
There is a patch for VS6 to fix the STL problems. The other problem would be gcc < 3.x, there's no patch for that, just have to upgrade to a newer compiler.
There's no excuses for not upgrading, except personal opinion, technically, it's not an issue.
Dont want to disturb your peace guys, i do actually prefer STL; but i was having some memory allocation problems in my game and here it was i finally discovered:
Though memory is not freed localy, the game ends without memory leaks (CRT wont detect any). But it just could lead to a std::bad_alloc if runs out of memory.
Anyway, as the link says, it should be patched on VS8 SP1, which i have downloading and installing this nite. Will give it a try later. Just wanted to point that stl (as any other program/library) is not bug free.
For example, i have seen that every frame (on irrlicht), arrays of renderable objects are cleared and restored, which leads to continous allocations/deallocations. This could be a performance decrease, as current irr:core::array frees the data memory on clear(). It does not separate capacity from size, as current stl implementation does.
A lot of work to examine for a MySTL vs STL thread.
Not to be nitpicking, but the bug is not in the STL, it is in iostream.
But to confirm, it is indeed fixed with SP1.
Yep, that clear() frees the memory is annoying. Irrlicht doesn't have to reinvent the swap-trick, but maybe it is a good idea to make clear not destroy the buffer and add another function, that does. Maybe named purge() or with another fitting name.
The STL is the Standard Template Library, which is a collection of containers, iterators and algorithms that eventually became part of the Standard C++ Library. People typically refer to the Standard C++ Library as STL, but it is not _really_ correct. Also, just FYI... http://en.wikipedia.org/wiki/C%2B%2B_Standard_Library