发生了什么事?
#include <iostream>
#include <iterator>
#include <sstream>
int main() {
std::basic_stringbuf<unsigned char> buf;
std::basic_istream<unsigned char> stream(&buf);
// the next line throws std::bad_cast on g++ 4.4
std::istream_iterator<unsigned char, unsigned char> it(stream);
}
我在构造迭代器之前尝试过stream.write(some_array, sizeof(some_array)
,但没有用。
感谢。
答案 0 :(得分:2)
它从sentry对象的构造函数抛出,它检查流上的ctype facet(它需要它以便它可以跳过空格),这恰好是NULL,因为它没有为unsigned chars定义。
您是否需要处理该流上的空白?如果没有,请转到
std::istreambuf_iterator<unsigned char> it(stream);
答案 1 :(得分:0)
std::istream_iterator<unsigned char> it(stream);