私は困惑しています:
struct File {
struct Handle {
size_t count;
};
std::set<Handle>::iterator handle_;
~File() {
File::close(*this);
}
static void close(File &f) {
(*f.handle_).count--;
}
};
ICC では、エラーは次のとおりです。
error #137: expression must be a modifiable lvalue
(*f.handle_).count++;
^
なぜ std::set::iterator は const なのですか?