これはすべての C++ コンパイラで正しいですか? または、代わりに最初に int にキャストする必要がありますか?
int8_t i = -128;
std::string = boost::lexical_cast<std::string>((int16_t)i)
std::to_string
この関数を使用して、これを行うことができます。
std::int8_t i = -128;
std::string s=std::to_string(i);
http://en.cppreference.com/w/cpp/string/basic_string/to_string
ノート:
固定幅タイプはC++11でのみ追加されるため、C++11を想定しました
http://en.cppreference.com/w/cpp/types/integer
これがC++11でない場合(そしてどこか別の場所でtypedefフォームを取得している場合(C99?))、テンプレートパラメーターとしてソースタイプを指定するだけです。
std::string str=boost::lexical_cast<std::string, int>(i);
http://www.boost.org/doc/libs/1_40_0/libs/conversion/lexical_cast.htm#synopsis