Могу ли я настроить поток, элемент которого является структурой - PullRequest
0 голосов
/ 06 марта 2019

Я получил тип структуры, скажем, он выглядит так:

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

и я хочу поместить объекты Token в поток, а функции вроде get(), peek() все возвращают объект (или ссылку / указатель)?

как то так: Token token = stream.get(); или Token* token = stream.get();

1 Ответ

0 голосов
/ 06 марта 2019

Вот рецепт способа создания пользовательского объекта потока, который можно сделать, унаследовав 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.

}

Исходя из этого, вы должны иметь возможность выполнить то, что вы просили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...