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