我可以自定义元素为结构的流吗

时间:2019-03-06 11:11:47

标签: c++ stream

我有一个结构类型,让我们说它看起来像这样:

struct Token {
  int type;
  char value[64];
};

我想将Token的对象放到流中,像get()peek()之类的函数都返回一个对象(或引用/指针)?

类似这样的东西: Token token = stream.get();Token* token = stream.get();

1 个答案:

答案 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.

}

接着,您应该能够完成所要求的工作。

相关问题