我正在使用具有如下声明的 3rd 方库:
typedef struct {} __INTERNAL_DATA, *HandleType;
我想创建一个在构造函数中采用HandleType的类:
class Foo
{
Foo(HandleType h);
}
不包括定义HandleType的标头。通常,我只是前向声明这种类型,但我无法弄清楚它的语法。我真的很想说:
struct *HandleType;
但这在 GCC 中表示“* 之前的预期标识符”。我能看到的唯一解决方案是像这样编写我的类:
struct __INTERNAL_DATA;
class Foo
{
Foo(__INTERNAL_DATA *h);
}
但这依赖于库的内部细节。也就是说,它使用名称__INTERNAL_DATA,这是一个实现细节。
似乎应该可以在不使用 __INTERNAL_DATA (库实现的一部分)的情况下前向声明 HandleType (公共 API 的一部分)。有人知道怎么做吗?
编辑:添加了有关我正在寻找的内容的更多详细信息。