Gennadiy Rozental wrote:
>>1. Just document it. Not so good, IMHO.
>>
>> 2. Document the special case and add a check for NULL pointers
>> before calling strcmp().
>>
>> 3. Remove the special case alltogether. After all, I might want
>> to check that the pointers are equal and not the string they
>> point to. This might be the best solution, but breaks backward
>> compatibility.
>
> In majority of the cases when user is comparing two character
> pointers he need namely "string comparison". Requiring to cast both
> sides to std::string is a big burden IMO. So I would choose
> solution 2.
Actually I was hoping you would choose option 3. :-) For me, option 2
just doesn't feel right. And I think it's not in the spirit of the
standard, either. (Implicit conversion from char * to string doesn't
exist, a char * is just a pointer.) I would classify this as
"suprising behaviour" which should be avoided wherever possible.
But you're the one to decide and if you go for option 2 please add a
big red warning to the docs.
Markus
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
- [boost] BOOST_CHECK_EQUAL() dangers Markus Schöpflin
- Re: [boost] BOOST_CHECK_EQUAL() dangers David Abrahams
- [boost] Re: BOOST_CHECK_EQUAL() dangers Gennadiy Rozental
- Re: [boost] Re: BOOST_CHECK_EQUAL() dangers David Abrahams
- [boost] Re: BOOST_CHECK_EQUAL() dangers Markus Schöpflin
- [boost] Re: BOOST_CHECK_EQUAL() dangers Gennadiy Rozental
- [boost] Re: BOOST_CHECK_EQUAL() dangers Markus Schöpflin
- [boost] Re: BOOST_CHECK_EQUAL() dangers Alisdair Meredith
- RE: [boost] BOOST_CHECK_EQUAL() dangers Chris Parsons