This is the mail archive of the mailing list for the libstdc++ 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]

Re: unsafe STL patch

Thanks, it is a good workaround but I had plan to introduce this function in debug/functions.h:

 template<typename _Iterator>
 typename __siter_base<_Iterator>::iterator_type
 __base(_Iterator __it)
 { return __siter_base<_Iterator>::__b(__it); }

__base is easier to use through out the debug containers. But in this case the __iter_base declaration is not enough.

Do you have an other solution or I will be forced to write __siter_base<_InputIterator>::__b(__first) rather than __base(__first) everywhere ?

IMO including debug/debug.h from bits/stl_algobase.h is not clean. Why algos are managed differently from containers ? There should be a debug/algorithm header where we could put the __glibcxx_check_valid_range before calling the algo implementations. This way the debug mode would not be visible in the non debug part of the lib. The only problem would be that concept checks would be performed after instantiation of the debug version of algos in debug mode, would it really be a problem ?

Sorry but I haven't receive the form, I am experimenting issues with my mails recently. Can you try again ?


Paolo Carlini wrote:
On 02/03/2010 09:45 PM, Paolo Carlini wrote:
On 02/03/2010 09:38 PM, François Dumont wrote:

I kept on working on my patch and try to use __iter_base from
stl_algobase.h. The problem is that there is a cyclic dependency
between bits/stl_algobase.h and debug/functions.h when _GLIBCXX_DEBUG
is defined. So __iter_base must be isolated in an other header. Should
it be in a dedicated header or you know a header I could use ?
I don't think you need anything special because list and all the other
containers *already* include stl_algobase.h. Thus, just use what it
provides, __iter_base too.
Ok, now I see. It's just that stl_algobase.h includes debug.h before
defining __iter_base. Don't be slowed down now by such trivial details,
eg, just do something like the below, and go ahead.



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