title: Google mock does not compile with boost::variant of std::vector
body: <p>I am trying to create Google Mock object for some interface class which uses boost::variant</p>
  
  <pre><code>#include &lt;gtest/gtest.h&gt;
  #include &lt;gmock/gmock.h&gt;
  #include &lt;boost/variant.hpp&gt;
  #include &lt;vector&gt;
  
  typedef std::vector&lt;int&gt; VectorOfInt;
  typedef boost::variant&lt;VectorOfInt&gt; VariantOfVector;
  
  class InterfaceClass
  {
  public:
       virtual ~InterfaceClass() {}
       virtual void SetSome( const VariantOfVector&amp; ) = 0;
       virtual const VariantOfVector&amp; GetSome() const = 0;
  };
  
  class MockInterfaceClass
  {
  public:
       MOCK_METHOD1( SetSome, void( const VariantOfVector&amp; ) );
       MOCK_CONST_METHOD0( GetSome, const VariantOfVector&amp;() );
  };
  </code></pre>
  
  <p>When I compile it with</p>
  
  <blockquote>
    <p>g++ mytest.cpp -o mytest</p>
  </blockquote>
  
  <p>i get</p>
  
  <blockquote>
    <p>/usr/include/boost/variant/detail/variant_io.hpp:64: error: no match for ‘operator&lt;&lt;’ in ‘((const boost::detail::variant::printer > >*)this)->boost::detail::variant::printer > >::out_ &lt;&lt; operand’</p>
  </blockquote>
  
  <p>Does boost::variant work with std::vector? It seems boost::variant works with any type I define but std:vector. Why?</p>
  
  <p>Boost version - 1.45
  g++ version - 4.4.5</p>