title: ASSERT_EQ with boolean failing in gtest
body: <p>I have an custom aggregate template type that I am trying to test using gtest. I am using a TYPED_TEST_P, and testing various types. It works fine until I try to do boolean types. I get the following "error"</p>
  
  <pre><code>error: Value of: const_img.at(pt.x,pt.y)
    Actual: true
  Expected: *buffer
  Which is: true
  </code></pre>
  
  <p>So this is saying there is an error: true != true. Anyone see this problem before? How do you fix it?</p>
  
  <p>I can't post all of the code here, but:</p>
  
  <p>The call that catches the non-error is:</p>
  
  <p><code>ASSERT_EQ(*buffer,const_img.at(pt.x,pt.y))</code></p>
  
  <p><code>TypeParam</code> is a typedef for <code>bool</code> in this case, provided by Google Test based on <code>TYPED_TEST_P</code>.   <code>buffer</code> has the following type:</p>
  
  <pre><code>const TypeParam* buffer;
  </code></pre>
  
  <p><code>const_image</code> is a <code>const Image&lt;TypeParam&gt;&amp;</code> (custom class), which forces <code>at</code> to be the const overload, with the footprint:</p>
  
  <pre><code>const TypeParam&amp; at(ptrdiff_t col,ptrdiff_t row) const;
  </code></pre>
  
  <p>Obviosly, this is returning the correct value (true should equal true), and a breakpoint on the following if statement is never reached:</p>
  
  <pre><code>  if (*buffer != const_img.at(pt.x,pt.y))
    {
      std::cout &lt;&lt; "here" &lt;&lt; std::endl;
    }
  </code></pre>
  
  <p>If I skip testing the const overload, I get no errors (which is weird).</p>
  
  <p>Edit: Work Around</p>
  
  <p>The following work around works, but is...dumb.</p>
  
  <pre><code>  TypeParam a = const_img.at(pt.x,pt.y);
    TypeParam b = *buffer;
    ASSERT_EQ(
      a,b);
  </code></pre>