#include <map>

struct A : std::map<int, A>::iterator
{
  typedef std::map<int, A> map;
  A(const std::map<int, A>::iterator& other) : std::map<int, A>::iterator(other) {}
};

A::map m;

int main()
{
  m.insert(std::make_pair(0, m.end()));
}