我有课程:
struct A { // has no pointer members, POD - it's fine
int a, b;
char c;
};
struct B { // has no pointer members, but not POD - it's still fine
int a, b;
std::string s;
};
struct C { // has pointer members, it's not fine
int a,b;
char* cs;
};
Run Code Online (Sandbox Code Playgroud)
我需要在编译时检测是否有任何类具有 的属性struct C
,即具有指针作为成员。
简短的推理:我需要确保用户定义的类型可以通过复制或赋值(例如)或通过在类中struct A
提供用户定义的serialize()
和方法(例如和)安全地序列化和反序列化到某个缓冲区。deserialize()
struct B
struct c
如果B
或C
没有实现这些方法,那么编译应该失败,但如果A
没有这些方法,那么编译应该成功。
更新: …