search for: range_traits

Displaying 3 results from an estimated 3 matches for "range_traits".

2009 May 15
0
[LLVMdev] Removing std::vector from APIs (was Re: Mutating the elements of a ConstantArray)
On Friday 15 May 2009 05:50, Jay Foad wrote: > > 3. Any comments on the patch itself? > > > > The one major thing to be aware of is that it isn't safe to use &V[0] > > when V is an empty std::vector > > Oh dear. That's a bit of a flaw in the plan. I suppose the solution is > to switch to SmallVector whenever this might be a problem. Or use iterators.
2009 May 15
2
[LLVMdev] Removing std::vector from APIs (was Re: Mutating the elements of a ConstantArray)
...* which adds a template constructor: template<typename T> template<size_t N> range<T*>::range<T*>(T (&arr)[N]) : Begin(arr), End(arr + N) { } or by (2a) using a traits type to look up ConvertibleToRange::iterator & -::value_type template<typename T> struct range_traits { typedef typename T::value_type value_type; typedef typename T::iterator iterator; // .. etc ... }; template<typename T, size_t N> struct range_traits<T[N]> { typedef T value_type; typedef T *iterator; // .. etc ... }; and by (2b) indirecting calls to seq.begin() an...
2009 May 15
3
[LLVMdev] Removing std::vector from APIs (was Re: Mutating the elements of a ConstantArray)
> 3. Any comments on the patch itself? > > The one major thing to be aware of is that it isn't safe to use &V[0] when V > is an empty std::vector Oh dear. That's a bit of a flaw in the plan. I suppose the solution is to switch to SmallVector whenever this might be a problem. I'm a bit concerned that any new &empty[0] problems that are introduced will go unnoticed.