#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;
}