mylist::I iter;
mylist<int> il; iter = il.begin();
mylist<double> dl; iter = dl.begin();
とかやりたいのか?
無理だ。