C++標準ライブラリ文字列クラステンプレーstd::basic_stringのメンバ関数c_str, dataおよびoperator[]の仕様ついてメモ。 basic_string の data と c_str の挙動の変更 C++03 では c_str メンバ関数の返す文字列は null 終端されていることが保証されていましたが、data メンバ関数が返す値は null 終端されている保証はありませんでした。 C++11 では、c_str も data も同じ仕様になり、両方とも null 終端されていることが保証されるようになりました。 また、C++03 では c_str, data の計算量を規定していませんでしたが、C++11 では定数時間であることが保証されることになりました。 http://d.hatena.ne.jp/melpon/20111213/1323705670 比較