考察その3:ポインタを使ったstd::copyとイテレータを使ったstd::copyの違い

VC++7.1では,PODのポインタに対するcopyはmemmoveで実装されています.(なので,resize + memcpyとほとんど同じになる.)一方,std::vector::iteratorに対するcopyは(memmoveで実装しても安全であろうと思われるのにも関わらず)for文+代入で実装されています.そのため,ほとんど同じような使い方であるにも関わらず,大きな差が生じてしまいます.
gcc3.2.2ではポインタ・vector::iterator双方に対してcopyがmemmoveで実装されています.