Boost logo

Boost :

Subject: Re: [boost] [RFC] Boost library name mangling and Microsoft's 'secure STL' feature.
From: Giovanni Piero Deretta (gpderetta_at_[hidden])
Date: 2008-09-04 09:08:42


2008/9/4 Sebastian Redl <sebastian.redl_at_[hidden]>:
> 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).

In fact IIRC debugging containers are always available even if you do
not define the macro and you can access them by explicitly using the
__debug namespace (but I've never done that).

HTH,

-- 
gpd

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk