我可以自定义其元素是结构的流

问题描述 投票:0回答:1

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

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

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

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

c++ stream
1个回答
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.

}

继续,你应该能够完成你所要求的。

© www.soinside.com 2019 - 2024. All rights reserved.