I believe template resolution rules prohibit implicit conversion. You need to define operator<<, or use BOOST_TEST_DONT_PRINT_LOG_VALUE( Foo );
 
Gennadiy
"Robert Dailey" <rcdailey@gmail.com> сообщил/сообщила в новостях следующее: news:496954360805021435p6cbc5c60oadae02d7de234d96@mail.gmail.com...
Yes, the streaming operator I ended up trying and it worked (after I posted), but one thing I left out in my original post was the fact that I had an overloaded casting operator to std::string, which I figured would fix the issue just as well as the stream operator would. I was wrong, and that is what motivated me originally to post.

As far as this problem is concerned, however, it's solved.

On Fri, May 2, 2008 at 3:36 PM, Sohail Somani <sohail@taggedtype.net> wrote:
Robert Dailey wrote:
[snip]

> Anyway, I have a class named "Foo", and I've given it an overloaded
> boolean == operator. When I do the following, it fails to compile under
> MSVC9:

Dude, read the error:

[snip]

> 1>c:\it\tfs\crusades\sdks\boost\boost\test\test_tools.hpp(342) : error
> C2679: binary '<<' : no operator found which takes a right-hand operand
> of type 'const Foo' (or there is no acceptable conversion)

No operator<< not ==. Boost test has something like this for
CHECK_EQUAL(a,b):

if(a!=b) { cout << "omg a!=b [a=" << a << ", b=" << b << "]" }

--
Sohail Somani
http://uint32t.blogspot.com
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users