3

と で記述されたバイト シーケンスのバイナリ データがconst unsigned char *pありsize_t lenます。を期待する関数にこのデータを渡すことができるようにしたいstd::istream *.

データをコピーしたり、安全でないキャストを行ったり、新しいストリーム クラスを作成したりせずに、これを行うことができるはずです。しかし、これまでのところ私は失敗しています。誰でも助けることができますか?

アップデート

コメントありがとうございます。これは答えられない質問のように思われます。なぜなら、 と をstd::istream操作するとchar、ある時点で少なくとも からの整数キャストが必要になるからunsigned charです。

実用的なアプローチは、これを行うことです。

std::string s(reinterpret_cast<const char*>(p), len);
std::istringstream i(s);

&iそして期待する関数に渡しstd::istream *ます。

4

1 に答える 1