template <typename T>
struct add_pointer { typedef T***************************** type; };
template <int N, typename T>
struct add_pointers : add_pointer<typename add_pointers<N-1, T>::type> {};
template <typename T>
struct add_pointers<0, T> { typedef T type; };
template <int N, typename T>
struct add_many_pointers : add_pointers<100,typename add_many_pointers<N-1, T>::type> {};
template <typename T>
struct add_many_pointers<0, T> { typedef T type; };
int main() {
add_many_pointers<100, int>::type p;
}
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0cnVjdCBhZGRfcG9pbnRlciB7IHR5cGVkZWYgVCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqIHR5cGU7IH07CiAKdGVtcGxhdGUgPGludCBOLCB0eXBlbmFtZSBUPgpzdHJ1Y3QgYWRkX3BvaW50ZXJzIDogYWRkX3BvaW50ZXI8dHlwZW5hbWUgYWRkX3BvaW50ZXJzPE4tMSwgVD46OnR5cGU+IHt9Owp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kc3RydWN0IGFkZF9wb2ludGVyczwwLCBUPiB7IHR5cGVkZWYgVCB0eXBlOyB9OwogCnRlbXBsYXRlIDxpbnQgTiwgdHlwZW5hbWUgVD4Kc3RydWN0IGFkZF9tYW55X3BvaW50ZXJzIDogYWRkX3BvaW50ZXJzPDEwMCx0eXBlbmFtZSBhZGRfbWFueV9wb2ludGVyczxOLTEsIFQ+Ojp0eXBlPiB7fTsKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0cnVjdCBhZGRfbWFueV9wb2ludGVyczwwLCBUPiB7IHR5cGVkZWYgVCB0eXBlOyB9OwogCmludCBtYWluKCkgewogICAgYWRkX21hbnlfcG9pbnRlcnM8MTAwLCBpbnQ+Ojp0eXBlIHA7Cn0=