wchar_t の表現範囲は少なくとも -127〜+127 または 0〜255
char の表現範囲は少なくとも -128〜+127
と決められています。ここまでは分かるのですが、
-127〜+127 の範囲については安全に変換して良いという
ことまで保証されているのでしょうか?

string -> wstring の変換を書こうと思っていて、
安全に変換できない文字が含まれていたら
例外を投げるようにしようと思っています。
本当は boost::lexical_cast が用意されていたら便利なんですが。