realloc in C++

http://tinyurl.com/6qczy

  • CにはreallocあるけどC++にはreallocねーよ
  • じゃ,代わりに
    • でかいサイズのバッファ確保してそこに要素コピーして古いバッファ削除(vector::resize).もしくは
    • "renew"とかって名前の新しい予約語を提案する
  • (reallocを欲する理由は効率に関してだろうなぁ.再配置を伴わないバッファの伸長は確かに効率化にはなるだろう)
  • でも,そもそもCのreallocが再配置を伴わない保証がどこにもない
  • あんまり関係ないけれど「QoI = Quality of Implementation」
  • となると欲しいのはCのreallocとは異なる「新しいrealloc」(現在バッファが確保されているfree store上のchunk内でバッファを伸ばせるなら伸ばす,伸ばせないなら失敗,という効果の「realloc」)
  • それでもvector::resizeで十分だよ(そのようなreallocによる恩恵が大きい例は稀少ではないか?)
  • そういうreallocの恩恵をvectorが受けるには新しいinterface(再配置なしのバッファ伸長のためのinterface)を持ったallocatorを標準に導入して,vectorがそれを使うようにしないとねぇ.
  • 全然関係ないけれど,Howard Hinnant氏はmetroworksの人("As a vendor of std::vector"って書いてるの見て初めて気がついた)
  • さらに全然関係ないけれど"metrowerks"が正しいつづりであることにたった今気がついた(大恥