Question de prime : Donc, ces deux Foo
ne sont pas la même chose. Bien. La deuxième forme est donnée dans une bibliothèque. Comment puis-je le redéclarer étant donné que je ne peux pas le modifier ?
J'ai toujours pensé que le C et le C++ autorisaient les déclarations répétées à condition qu'il n'y ait pas de définitions répétées. J'ai ensuite rencontré ce problème en essayant d'écrire du code C++ qui étend une bibliothèque C.
struct Foo;
typedef struct {} Foo;
Cela donne l'erreur suivante :
La déclaration précédente de 'struct Foo' était 'struct Foo'.
Je veux faire une déclaration préalable, bon sang ! Qu'est-ce qui ne va pas ici ?