鉴于翻译单元中的一个不完全类型:为什么我无法使用typedef来完成该类型?
struct Incomplete;
Incomplete* create_incomplete();
void destroy_incomplete(Incomplete*);
为什么我不能在其他翻译单元使用它,通过使用typedef
?
例如,在翻译单元B:
struct Unrelated
{
int x;
int y;
};
typedef Unrelated Incomplete;
Incomplete* create_incomplete()
{
return new Incomplete();
}
void destroy_incomplete(Incomplete* arg)
{
delete arg;
}
因为你已经宣布'Incomplete'是一个类型,而不是一个类型别名。 –
好吧,但我正在寻找一个权威的答案(基于标准报价) – milleniumbug
哦,等等,我没有注意到你有这些作为单独的翻译单位。所以我上面的评论可能不会成立...... –