#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> s;
for(int i = 0; i < 10; ++i)
s.insert(i);
set<int>::iterator it = s.find(2);
_Rb_tree_iterator<int> it_rb1 = reinterpret_cast<_Rb_tree_iterator<int>&>(it);
_Rb_tree_iterator<int> it_rb2 = (_Rb_tree_iterator<int>&)(it);
//_Rb_tree_iterator<int> it_rb3 = static_cast<_Rb_tree_iterator<int>&>(it); //This won't compile
//_Rb_tree_iterator<int> it_rb4 = const_cast<_Rb_tree_iterator<int>&>(it); //Neither will this.
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbWFpbigpIHsKCXNldDxpbnQ+IHM7Cglmb3IoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkKCQlzLmluc2VydChpKTsKCXNldDxpbnQ+OjppdGVyYXRvciBpdCA9IHMuZmluZCgyKTsKCV9SYl90cmVlX2l0ZXJhdG9yPGludD4gaXRfcmIxID0gcmVpbnRlcnByZXRfY2FzdDxfUmJfdHJlZV9pdGVyYXRvcjxpbnQ+Jj4oaXQpOwoJX1JiX3RyZWVfaXRlcmF0b3I8aW50PiBpdF9yYjIgPSAoX1JiX3RyZWVfaXRlcmF0b3I8aW50PiYpKGl0KTsKCS8vX1JiX3RyZWVfaXRlcmF0b3I8aW50PiBpdF9yYjMgPSBzdGF0aWNfY2FzdDxfUmJfdHJlZV9pdGVyYXRvcjxpbnQ+Jj4oaXQpOyAvL1RoaXMgd29uJ3QgY29tcGlsZQoJLy9fUmJfdHJlZV9pdGVyYXRvcjxpbnQ+IGl0X3JiNCA9IGNvbnN0X2Nhc3Q8X1JiX3RyZWVfaXRlcmF0b3I8aW50PiY+KGl0KTsgLy9OZWl0aGVyIHdpbGwgdGhpcy4KCXJldHVybiAwOwp9