title: BOOST_CHECK fails to compile operator<< for custom types
body: <p>I wrote this really trivial class so that it's clear what my problem is:</p>
  
  <pre><code>class A
  {
  public:
      int x;
      A(int y) {x=y;}
      bool operator==(const A &amp;other) const {return x==other.x;}
  };
  </code></pre>
  
  <p>Now, if I define     A first(1) and A second(1), it would seem natural to me that BOOST_CHECK_EQUAL(first, second) should pass. However, I got 50 errors when trying to do this, the first one sounds like: no math for operator &lt;&lt; in ostr &lt;&lt; t which is somewhere in the boost code... Other tests work just fine, comparing known types or even pointers, but there is something different that appears to happen with class objects.</p>