Re: Unused header file inclusion
От | Tom Lane |
---|---|
Тема | Re: Unused header file inclusion |
Дата | |
Msg-id | 22389.1564606531@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Unused header file inclusion (Alvaro Herrera <alvherre@2ndquadrant.com>) |
Ответы |
Re: Unused header file inclusion
|
Список | pgsql-hackers |
Alvaro Herrera <alvherre@2ndquadrant.com> writes: > On 2019-Jul-31, Andres Freund wrote: >> * I think a lot of the interlinking stems from the bad idea to use >> typedef's everywhere. In contrast to structs they cannot be forward >> declared portably in our version of C. We should use a lot more struct >> forward declarations, and just not use the typedef. > I don't know about that ... I think the problem is that we both declare > the typedef *and* define the struct in the same place. If we were to > split those things to separate files, the required rebuilds would be > much less, I think, because changing a struct would no longer require > recompiles of files that merely pass those structs around (that's very > common for Node-derived structs). Forward-declaring structs in > unrelated header files just because they need them, feels a bit like > cheating to me. Yeah. I seem to recall a proposal that nodes.h should contain typedef struct Foo Foo; for every node type Foo, and then the other headers would just fill in the structs, and we could get rid of a lot of ad-hoc forward struct declarations and other hackery. regards, tom lane
В списке pgsql-hackers по дате отправления: