title: apply boost::fusion::for_each to boost::fusion::vector with mutable function object
body: <p>I am trying to use boost::fusion::vector. However, I am in trouble with the very simple problem.</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;string&gt;
  
  #include &lt;boost/fusion/container/vector.hpp&gt;
  #include &lt;boost/fusion/algorithm.hpp&gt;
  
  using namespace std;
  
  struct A{
      template &lt;class T&gt;
      void operator()(const T&amp; t) {
          x++;
          cout &lt;&lt; t &lt;&lt; endl;
      }
  
      int x = 0;
  };
  
  int main(){
      A a;
      boost::fusion::vector&lt;int, int, int&gt; tuple{3,4,5};
      boost::fusion::for_each(tuple, a);
  }
  </code></pre>
  
  <p>Note that the <code>operator()</code> of <code>struct A</code> modifies <code>x</code> in <code>struct A</code>. 
  gcc 4.7.2 warns that ...\include\boost\fusion\algorithm\iteration\detail\for_each.hpp:77: error: passing 'const A' as 'this' argument of 'void A::operator()(const T&amp;) [with T = int]' discards qualifiers [-fpermissive]</p>
  
  <p>Is there a solution for this?</p>