Нет, по многим причинам.Во-первых, это не скомпилируется, потому что вы должны передать char *
в read
и write
.Во-вторых, это не гарантирует работу даже на одной платформе, потому что структура может содержать отступы (но сама она может различаться между разными версиями кода, даже скомпилированными, даже на одной платформе).Далее следует рассмотреть 64/32-битные проблемы, которые влияют на многие типы примитивов (например, long double
дополняется до 12 байтов в x86, но до 16 байтов в x64).И последнее, но не менее важное: есть порядковый номер (хотя я не уверен, что такое порядковый номер в iOS).
Короче говоря, нет, не делайте этого.член отдельно, и в соответствии с его типом данных.
Вы можете проверить Boost.serialization, хотя у меня нет никакого опыта с этим.