std::set iterator const qualifier
<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="http://stackoverflow.com/questions/2217878/c-stl-set-update-is-tedious-i-cant-change-an-element-in-place">C++ STL set update is tedious: I can’t change an element in place</a>  </p>
</blockquote>



<p>I am stumped:</p>

<pre><code>struct File {
    struct Handle {
         size_t count;
    }; 
    std::set&lt;Handle&gt;::iterator handle_;
    ~File() {
        File::close(*this);
    }
    static void close(File &amp;f) {
        (*f.handle_).count--;
    }
};
</code></pre>

<p>With ICC the error is:</p>

<pre><code>error #137: expression must be a modifiable lvalue
(*f.handle_).count++;
^
</code></pre>

<p>Why is std::set::iterator const?</p>
