バックグラウンド:
私はテンプレート ストリーム演算子 (例: ) を持っています (これは、8 ビット整数型 (例: など)でoperator << (ostream &, std::vector <T>)
ある可能性があるコンテナー要素を出力します)。unsigned char
int_least8_t
問題:
デフォルトでは、これらのタイプはchar
(ASCII) として出力されます。私はASCII変数にのみchar
(wchar_t
または何でも)使用し、符号なし/符号付きタイプは決して使用しませんでした。呼び出し元が型を知らない場合でも、これらの他の 8 ビット型を常にsigned int
/ (数値) として出力するにはどうすればよいですか?unsigned int
最初の試行:
たとえばoperator << (ostream &, unsigned char)
、キャストを使用して定義しようとしました(GCCを使用)(つまり、値に対してはstream << static_cast <int> (value)
機能しますが、出力は.unsigned char
uint8_t
char
同じ基になる型 (つまりunsigned/signed char
、オーバーロードでは使用できないため、たとえばoperator << (ostream &, int_fast8_t)
.