title: Casting normal pointer to std::shared_ptr doesn't seem to work
body: <pre><code>#include &lt;SFML/Graphics.hpp&gt;
  #include &lt;memory&gt;
  #include &lt;map&gt;
  
  int main(int argc, char **argv)
  {
  std::map &lt;const std::string, std::shared_ptr&lt;sf::Texture&gt; &gt; resources;
  sf::Texture tempResource;
  tempResource.loadFromFile("1.PNG");
  
  resources.insert(std::pair&lt;const std::string, std::shared_ptr&lt;sf::Texture&gt;&gt;("1", std::dynamic_pointer_cast&lt;sf::Texture&gt;( new sf::Texture(tempResource) ) ) );
  
  return 0;
  }
  </code></pre>
  
  <p>(that new call uses copy constructor)</p>
  
  <p>Without casting (just calling new inside insert function) it didn't work. So i used shared_ptr casting to do it, however it doesn't work. The error:
  <strong>error: no matching function for call to ‘dynamic_pointer_cast(sf::Texture*)’</strong></p>
  
  <p>What's wrong here, how can I make it to work? I'm new to shared_ptrs and I just can't solve it myself.</p>
  
  <p>Thanks</p>