std::map unable to handle polymorphism?
<p>When using std::map in c++, is it possible to store inherited classes as their "base class" in the map and still being able to call their overloaded methods? See this example:</p>

<pre><code>#include &lt;iostream&gt;
#include &lt;map&gt;
class Base
{
    public:
    virtual void Foo() { std::cout &lt;&lt; "1"; }
};

class Child : public Base
{
    public:
    void Foo() { std::cout &lt;&lt; "2"; }
};

int main (int argc, char * const argv[])
{
    std::map&lt;std:string, Base&gt; Storage;
    Storage["rawr"]=Child();
    Storage["rawr"].Foo();
    return 0;
}
</code></pre>

<p>This following code writes "1". Which somehow tells me that polymorphism doesn't work when you use std::map.</p>
