鑑於翻譯單元中的一個不完全類型:爲什麼我無法使用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
哦,等等,我沒有注意到你有這些作爲單獨的翻譯單位。所以我上面的評論可能不會成立...... –