2 structs came from different Header-Files. How can I ensure the memory layout of them are binary compatibility? In addition how can I check the naming of them are equal? The checking should be done at compile time.
As an Example:
namespace LibA {
struct Item {
uint32_t A;
uint8_t B;
uint8_t pad1,pad2,pad3;
};
}
namespace LibB {
struct Item {
uint32_t A;
uint8_t B;
uint8_t pad1,pad2,pad3;
};
}
Ok - in the above Example it's easy to do it the manual way with sizeof(...) and offsetof(...).
But the question is to do it in an automatic way like static_assert(issame(LibA::Item,LibB::Item),"Check")?
Aucun commentaire:
Enregistrer un commentaire