2 added 2 characters in body
source | link

I would claim your answerquestion is fundamentally unanswerable, since there are two kinds of header hell:

  • The kind where you need to include a million different headers, and who in hell can even remember all of them? And maintain those listlists of headers? Ugh.
  • The kind where you include one thing, and find out you've included the whole Tower of Babel (or should I say tower of Boost?...)

the thing is, if you try to avoid the former you end up, to some extent, with the latter, and vice-versa.

There's also a third kind of hell, which is circular dependencies. These might pop up if you're not careful... avoiding them is not super-complicated, but you do need to take the time to think about how to do it. See John Lakos talk on Levelization in CppCon 2016 (or just the slides).

I would claim your answer is fundamentally unanswerable, since there are two kinds of header hell:

  • The kind where you need to include a million different headers, and who in hell can even remember all of them? And maintain those list of headers? Ugh.
  • The kind where you include one thing, and find out you've included the whole Tower of Babel (or should I say tower of Boost?...)

the thing is, if you try to avoid the former you end up, to some extent, with the latter, and vice-versa.

There's also a third kind of hell, which is circular dependencies. These might pop up if you're not careful... avoiding them is not super-complicated, but you do need to take the time to think about how to do it. See John Lakos talk on Levelization in CppCon 2016 (or just the slides).

I would claim your question is fundamentally unanswerable, since there are two kinds of header hell:

  • The kind where you need to include a million different headers, and who in hell can even remember all of them? And maintain those lists of headers? Ugh.
  • The kind where you include one thing, and find out you've included the whole Tower of Babel (or should I say tower of Boost?...)

the thing is, if you try to avoid the former you end up, to some extent, with the latter, and vice-versa.

There's also a third kind of hell, which is circular dependencies. These might pop up if you're not careful... avoiding them is not super-complicated, but you do need to take the time to think about how to do it. See John Lakos talk on Levelization in CppCon 2016 (or just the slides).

1
source | link

I would claim your answer is fundamentally unanswerable, since there are two kinds of header hell:

  • The kind where you need to include a million different headers, and who in hell can even remember all of them? And maintain those list of headers? Ugh.
  • The kind where you include one thing, and find out you've included the whole Tower of Babel (or should I say tower of Boost?...)

the thing is, if you try to avoid the former you end up, to some extent, with the latter, and vice-versa.

There's also a third kind of hell, which is circular dependencies. These might pop up if you're not careful... avoiding them is not super-complicated, but you do need to take the time to think about how to do it. See John Lakos talk on Levelization in CppCon 2016 (or just the slides).