我有由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 *。