我有一个结构类型,让我们说它看起来像这样:
struct Token {
int type;
char value[64];
};
我想将Token
的对象放到流中,像get()
,peek()
之类的函数都返回一个对象(或引用/指针)?
类似这样的东西:
Token token = stream.get();
或
Token* token = stream.get();
答案 0 :(得分:0)
以下是创建自定义流对象的方法的方法,该方法可以通过继承std::stringbuf
class MyStreamBuf : public std::stringbuf {
//... override some functions from stringbuf (eg. sync) to change behavior
};
class MyInputStream : public std::istream {
MyStreamBuf buf_;
public:
MyInputStream : std::istream(&buf_){
}
//... add more interface here, etc.
}
接着,您应该能够完成所要求的工作。