This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Debug algorithms


Hi

Here is eventually the so long promized patch to introduce Debug algos similarly to Debug containers.

    Why such an evolution:
- More flexibility, debug algos can be used explicitely without activating Debug mode. - Performance: Debug algos can get rid of Debug layer on top of container iterators to invoke normal algos. Operations on normal iterators are faster and we also benefit from the same algos specialization that sometimes exist on some container iterators (like std::deque ones). Also normal algos are now using other normal algos, Debug check won't be done several times. - It will be easier to implement new Debug checks without the limitation to do so through some Debug macro

To do so I introduced a new namespace __cxx1998_a used for normal algos when Debug mode is active. I couldn't reuse __cxx1998 cause with current implementation of Debug containers __cxx1998 is exposed and because of ADL we could then have ambiguity between Debug and normal versions of the same algos. I also introduced a __std_a namespace which control the kind of algos used within the library mostly for containers implementation details.

    Patch is compressed as it is quite big.

    Tested under Linux x86_64 normal and debug modes.

FranÃois


Attachment: debug_algos.patch.bz2
Description: BZip2 compressed data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]