Почему
void foo(T*);
недопустимо как в C, так и в C ++ (потому что T
не определено), тогда как
void foo(struct T*);
является допустимым, даже если он все еще не определяет T
? Есть ли какая-либо ситуация, в которой для вызывающей стороны имеет значение семантическая разница, является ли T
структурой или каким-либо другим типом (class / enum / typedef / и т. Д.)?