Там имеется масса информации о перегрузке operator<<, чтобы имитировать метод toString() -style, который преобразует сложный объект в строку. Я также заинтересован в реализации обратного, operator>> для десериализации строки в объект.
Проверяя источник STL, я понял, что:
istream &operator>>(istream &, Object &);
будет правильной сигнатурой функции для десериализации объекта типа Object. К сожалению, я был в недоумении, как правильно это реализовать - в частности, как обрабатывать ошибки:
- Как указать недопустимые данные в потоке? Выбросить исключение?
- В каком состоянии должен быть поток, если в потоке есть искаженные данные?
- Должны ли какие-либо флаги reset перед возвратом ссылки на цепочку операторов?