我有一些代码采用打包的 POD 结构/类并将其复制到内存块中。
struct A
{
int a;
int b;
} a;
memcpy(mymemoryblock, (void *)&a, sizeof(A));
// later I get a reply and...
memcpy((void *)&a, mymemoryblock, sizeof(A));
这仅对 POD 类型的数据有效,并且我想知道是否有一种方法可以测试 POD-ness。如果有人不小心将成员函数添加到此类,则 memcpy 操作将变为无效,但仍可编译。这导致非常难以检测错误。
是否有 is_POD_type(A) 函数或其他可用于在运行时或编译时检测 POD 的技巧?