std::stringの比較

memcmpとして実装されているのが謎だったのだが、今更ながらchar、signed char、unsigned charはそれぞれ別の型ということを知った。

  • 符号ありかどうかは未定義なのでmemcmpでもよい
  • strcmpだとNUL文字から先が比較できないから使わない

ってことなんだろうか?
1バイトの整数値としては符号つきの方が便利だけど文字の値としては不便。isdigit((unsigned char)c)とか、まさに負の遺産