unique_copy/ unique_copy_ifの入力

あら?本当にまったくどうでも良いけれどunique_copy / unique_copy_ifの入力って標準規格やSGIの記述だとInputIteratorを要求しているけれど,アルゴリズム的にmulti-passなんじゃ・・・?
VC++7.1の実装読んでみたらInputIteratorに対しては一時変数に読み込んでた.さすがにちゃんとしてるにゃ.
#adjacent_findはイテレータ戻すからForwardIterator (multi-passなイテレータ)を要求するのにゃ.ホントにかすかな違いだにゃ〜.