title: shared_ptr deleter issue
body: <p>I am trying to attach deleter function in <code>shared_ptr</code> as we want to pool my memory but getting an strange error. Please help me to resolve this error:</p>
  
  <pre><code>template&lt;std::size_t size&gt; class Allocator{
  public:
      template&lt;typename T&gt; void Release(T *ptr)
      {
  
      }
      template&lt;typename T&gt; void GetMemory(std::shared_ptr&lt;T&gt; &amp;item)
      {
          T *ptr = new T();
          //my pain point is
          item =  std::shared_ptr&lt;T&gt;(ptr, 
          std::bind(&amp;Allocator&lt;size&gt;::Release, this, std::placeholders::_1));
      }
  };
  </code></pre>
  
  <p>The error is:</p>
  
  <pre><code>prog.cpp: In instantiation of 'void GetMemory(std::share_ptr&lt;T&gt; &amp;item)  unsigned int size = 10u]':
  prog.cpp:316:15:   required from here
  prog.cpp:226:19: error: no matching function for call to 'bind(&lt;unresolved overloaded function type&gt;, Pool&lt;10u&gt;*, const std::_Placeholder&lt;1&gt;&amp;)'
            std::bind(&amp;Pool&lt;test&gt;::Release, this, std::placeholders::_1)); 
  </code></pre>