#include <iostream>
template<class T1,class T2>
struct A
{
class iterator;
};
template<typename T1, typename T2>
struct A<T1, T2>::iterator {
public:
iterator& operator++();
iterator operator++(int);
};
// Prefix Increment (++i) operator overload
template<typename T1, typename T2>
typename A<T1, T2>::iterator&
A<T1, T2>::iterator::operator++() {
return *this;
}
int main()
{
A<int,int> a;
A<int,int>::iterator x;
++x;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8Y2xhc3MgVDEsY2xhc3MgVDI+CnN0cnVjdCBBCnsKICAgIGNsYXNzIGl0ZXJhdG9yOwp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgpzdHJ1Y3QgQTxUMSwgVDI+OjppdGVyYXRvciB7CnB1YmxpYzoKICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCk7CiAgICBpdGVyYXRvciBvcGVyYXRvcisrKGludCk7Cgp9OwoKLy8gUHJlZml4IEluY3JlbWVudCAoKytpKSBvcGVyYXRvciBvdmVybG9hZAp0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CnR5cGVuYW1lIEE8VDEsIFQyPjo6aXRlcmF0b3ImCiAgICBBPFQxLCBUMj46Oml0ZXJhdG9yOjpvcGVyYXRvcisrKCkgewogICAgcmV0dXJuICp0aGlzOwp9CgppbnQgbWFpbigpCnsKICAgIEE8aW50LGludD4gYTsKICAgIEE8aW50LGludD46Oml0ZXJhdG9yIHg7CiAgICArK3g7Cn0K