title: How to extract data on-fly from the argument with boost::bind
body: <p>Say you are passing a function to a function:</p>
  
  <pre><code>foo(boost::bind( &amp;CLASS_NAME::OnValueChanged, this, _1));
  </code></pre>
  
  <p>But the problem is <code>_1</code> type can vary, I don't need it really, only a data of it. So I would like to write something like this:</p>
  
  <pre><code>foo(boost::bind( &amp;CLASS_NAME::OnValueChanged, this, _1.GetName()));
  </code></pre>
  
  <p>because no matter what type <code>_1</code> is, I know that every time it has <code>GetName()</code> method, and the outcome type is the same (<code>wstring</code>).</p>
  
  <p>How to do it?</p>
  
  <p><em>Additionally in my case, the type holding <code>GetName</code> is a template.</em></p>