Discussion Overview
The discussion revolves around the organization and management of multiple C++ header and implementation files for related classes. Participants explore strategies to minimize the number of header files included in various programs and address concerns regarding project structure and build efficiency.
Discussion Character
- Technical explanation
- Debate/contested
Main Points Raised
- One participant suggests compiling related classes into a library file for easier linking in different programs.
- Another participant proposes creating a single header file that includes all other headers, referred to as "group_header.hpp".
- A different viewpoint argues against using a single comprehensive header file, citing it as a sign of poor software design and advocating for headers to include only what they need.
- Concerns are raised about excessive fan-out in header dependencies, with a participant referencing a psychological study to illustrate the limits of manageable complexity.
- One participant reiterates the library compilation suggestion but questions its relevance to the header organization issue.
- Another participant warns that using a single "everything.h" file could lead to increased build times and unnecessary recompilation of the entire project when a single header is modified.
Areas of Agreement / Disagreement
Participants express differing opinions on the best approach to header file organization, with no consensus reached on whether to use a single comprehensive header or to include only necessary dependencies in each header file.
Contextual Notes
Participants highlight potential issues with build efficiency and project design, but specific limitations or assumptions underlying their arguments are not fully explored.