Представление std::string
не гарантируется стандартом C ++, поэтому это не будет работать.std::string
может (и обычно будет) размещать свое содержимое в любом месте кучи, поэтому вы будете хранить указатель и элемент размера, а не саму строку.
Массив char
с compile-Размер постоянной времени, такой как tsetArr
, должен работать, хотя.
Можно ли определить возвращаемое значение sizeof () для объекта?
Нет,sizeof
не является функцией, поэтому вы не можете перегрузить ее (и строго, она имеет значение , но не возвращаемое значение , поскольку она не возвращает из любого места; он расширяется до константы компилятором).
Возможно ли отображение файла, содержащего struct
данные?
Возможно, дано я советую против этого;ваш код не будет переносимым, возможно, даже не для разных компиляторов на одной платформе, а ваш struct
сделан из камня.В любом случае, если вы хотите сделать это, только mmap
POD (обычные старые данные) без элементов указателя и добавьте элемент unsigned version
в ваш struct
, который вы увеличиваете при каждом изменении его определения.