cannot use obsolete binding at ‘input’ because it has a destructor
<p>here's the word-count I wrote. I got this error: <code>cannot use obsolete binding at ‘input’ because it has a destructor</code> and <code>error: name lookup of ‘input’ changed for ISO ‘for’ scoping</code> what are they suppose to mean? thanks in advance.</p>

<pre><code>   //rewrite the word-count program using insert instead of subscripting
    #include &lt;iostream&gt;
    #include &lt;utility&gt;
    #include &lt;map&gt;
    #include &lt;string&gt;
    using namespace std;
    int main ()
    {
        cout&lt;&lt;"please enter some words"&lt;&lt;endl;
        map&lt;string,int&gt; word_count;
        for(string input; cin&gt;&gt;input; )
            if(!word_count.insert(make_pair(input,1)).second);
                ++word_count[input];
        for(map&lt;string,int&gt;::iterator iter=word_count.begin(); iter!=word_count.end(); ++iter)
            cout&lt;&lt;iter-&gt;first&lt;&lt;": "&lt;&lt;iter-&gt;second&lt;&lt;endl;
    return 0;
    }
</code></pre>
