title: term does not evaluate to a function taking 1 arguments
body: <p>Can someone explain why I am getting:</p>
  
  <blockquote>
    <p>error C2064: term does not evaluate to a function taking 1 arguments</p>
  </blockquote>
  
  <p>for the line:</p>
  
  <pre><code>DoSomething-&gt;*pt2Func("test");
  </code></pre>
  
  <p>with this class</p>
  
  <pre><code>#ifndef DoSomething_H
  #define DoSomething_H
  
  #include &lt;string&gt;
  
  class DoSomething
  {
  public:
      DoSomething(const std::string &amp;path);
      virtual ~DoSomething();
  
      void DoSomething::bar(const std::string &amp;bar) { bar_ = bar; }
  
  private:
      std::string bar_;
  };
  
  #endif DoSomething_H
  </code></pre>
  
  <p>and</p>
  
  <pre><code>#include "DoSomething.hpp"
  
  namespace
  {
  
  void foo(void (DoSomething::*pt2Func)(const std::string&amp;), doSomething *DoSomething)
  {
      doSomething-&gt;*pt2Func("test");
  }
  
  }
  
  DoSomething::DoSomething(const std::string &amp;path)
  {
      foo(&amp;DoSomething::bar, this);
  
  }
  </code></pre>