Hi,

> On 27/gen/2014, at 20:38, Jonathan Wakely <jwak...@redhat.com> wrote:
> 
> This is the best I've come up with to avoid dereferencing an invalid
> pointer when calling vector::data() on an empty vector.
> 
> For C++03 we reurn the vector's pointer type, so can just return the
> internal pointer, but for C++11 we need to convert that to a raw
> pointer, which we do by dereferencing, so we must check if it's valid
> first.
> 
> Any better suggestions before I commit this?

I'm going to say something quite obvious - in principle the C++11 version could 
become identical at compile time to the simpler C++03 version depending on the 
types. Not sure if it's worth it, avoiding the conditional operator at 
run-time... Maybe libc++ does something similar, if I remember correctly 
Howard's distaste for branches ;)

Paolo


Reply via email to