我正在使用将不透明指针公开为的遗留 C 库接口(到 C++)
typedef void * OpaqueObject
在图书馆:
OpaqueObject CreateObject()
{
return new OurCppLibrary::Object();
}
这当然不会为这个库的客户提供任何类型安全。将 typedef 从 void 指针更改为结构指针是否应该完全相同,但提供少量类型安全?
typedef struct OpaqueObjectInternal_ *OpaqueObject
// OpaqueObjectInternal_ is NEVER defined anywhere in client or library code
现在我明确指向一个结构,即使我真的没有指向一个结构,是否有任何对齐问题或其他问题需要担心?