> 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.

Test library is all about usability and only then generocity or "standart
purity". Would you be working with c strings I wonder how long it will take
until you became tired adding std::string on both sides of comparison:

BOOST_CHECK_EQUAL( std::string( s ), std::string( t ) );
...
BOOST_CHECK_EQUAL( std::string( s ), std::string( t ) );
...
BOOST_CHECK_EQUAL( std::string( s ), std::string( t ) );

and will introduce simple forwarding macro

#define M_CHECK_EQUAL_STR( s, t ) \
 BOOST_CHECK_EQUAL( std::string( s ), std::string( t ) );

Boost.Test is doing this for you now. There is a very little posibility of
misuse (comparison of pointers as check for correctness is very strange
things in general IMO).

Gennadiy.





_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to