
on Thu Sep 04 2008, "Giovanni Piero Deretta" <gpderetta-AT-gmail.com> wrote:
2008/9/4 Sebastian Redl <sebastian.redl@getdesigned.at>:
Jurko Gospodnetić wrote:
First some collected background information related to Microsoft's checked & debugging iterator support to get a clearer image of what we are modeling. And could someone please collect a similar summary for other compilers/libraries?
Just a quick note: GCC's scheme works thus:
1) If _GLIBCXX_DEBUG is defined, the debug containers are made available. 2) These containers lie in the std::__debug namespace. To actually use them, the programmer needs to somehow use them explicitly. This can be done through using statements or declarations, through typedefs, or namespace aliases. There is no macro or compiler switch that replaces the normal containers automatically.
It is therefore an explicit choice by the programmer to use those containers, for every individual usage. No switching in the build system is necessary or even possible.
Eh? I'm fairly sure that if the macro is defined, standard containers are replaced by their debug counterpart. This is all you need to do to enable debugging (I have caught many bugs in my code just by defining that macro).
That's my experience too. -- Dave Abrahams BoostPro Computing http://www.boostpro.com