そういうのがあると、beginとendの型が全く違っててもパラメタがマッチするから
バグの原因だよなあ

結局解決策は、iteratorの種類ごとにcopyの多重定義ぐらいしかなさげ