>>99
>std::stringの内部のバッファが連続しているとは限らない
えっ?そうなのか?
「内部のバッファが連続しているとは限らない」なら普通にc_str()の呼び出しで一回だけ使うことですら危険じゃないだろうか。

仮にstd::stringのc_str()の実装が((以下、実際の実装がそうなっているという意味ではないぞ))
「内部的に連続していないかもしれない領域を保持しており、c_str()の呼び出しで再度領域の割り当てを行い、連続したバッファを返却する仕様」だとしても、
「返却された値がいつ無効になるのか分からない仕様」だとすると、前述したように「c_str()の呼び出しで戻り値を一回だけ使うことですら危険」だよな。
つまり、何かしらの無効になるタイミングがあるはずでそれが>>89だろ。
>>93でも言われているわけだが。

まぁ>>94が結論を書いてくれているが。