昔、string::compare の引数の順序 が違った?めも

組み込みは10年落ちとはよく言ったもので、うちで使っている STL は Tornado 2.2 付属のヤツでなんか古いです。コードを開くと1996年のSGIのコピーライトとか1999年のGNUのコピーライトとか入ってます。(新しいのにしたいのだけれど、いろいろ事情があってできない...orz)なので、vector::at が無かったりとかの 足りないメソッドがストレスになっています。

で、今日見つかったのがしたのが、string::compare の引数の順序が違うというもの。

  • 問題のSTL: s.compare( str, pos, n )
  • 現在のSTL: s.compare( pos, n, str )

になってます。むー、引数の順序違いとは嫌らしいなぁ。


問題の basic_string はヘッダコメントをみると 1999 GNU製で、

// Written by Jason Merrill based upon the specification by Takanori Adachi
// in ANSI X3J16/94-0013R2.

とあるので、ANSI ではこうだったのかな?で、ISO-14882:1998に成るとき 順番が変わったとか?・・暇になったら調べてみようメモ。