title: error defining std::function pointer to an instance of a function template, which is a member of a templated class?
body: <p>I'm getting the following error trying to declare an std::function pointing to a templated class member.</p>
  
  <blockquote>
    <p>Error  C2672   '<code>std::invoke</code>': no matching overloaded function found</p>
  </blockquote>
  
  <pre><code>template &lt;typename InputArchive, typename OutputArchive, typename ... Components&gt;
  class LevelSerializer {
  ...
      template &lt;typename Component&gt;
      void initRegistry() {
          ...
          std::function&lt;void(entityx::Entity, OutputArchive)&gt; f(std::bind(&amp;LevelSerializer&lt;InputArchive, OutputArchive, Components...&gt;::saveComponent&lt;Component&gt;, this)); // errors
      }
  
      ...
      // I'm trying to point to an instance of this function
      template &lt;typename T&gt;
      void saveComponent(entityx::Entity&amp; entity, OutputArchive&amp; archive)
  };
  </code></pre>
  
  <p><code>entityx::Entity</code> is a fixed (non-template) type. Why does doing this fail? </p>