In one of my projects I have to cache positional information about certain data chunks found in large files. I've already implemented a small API built around std::basic_istream<char>::pos_type
placed in maps.
Now I need to serialize these descriptors into a bytestream and write them on a disk for further usage (on other *nix-machines as well). I have read that this type is platform-dependent but still rather being a POD-type. So my questions are:
std::fpos<std::mbstate_t>
keeping the state of reading structure?std::basic_istream<char>::pos_type
(and other info if it is need)?Thank you in advance.
The structure of std::fpos<mbstate_t>
is unspecified and there may be non-trivial state in the mbstate_t
. You certainly can't portably serialize these objects. You can obtain a value of the offset type (std::streamoff
) which is an integer type and its value can be serialized.