[
https://issues.apache.org/jira/browse/DISPATCH-836?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17313972#comment-17313972
]
Jiri Daněk commented on DISPATCH-836:
-------------------------------------
clang-format actually does not work all that well, because it only recognizes
the main header if it is imported as "header.h" and not <header.h>. Dispatch
likes the <> imports way too much, even for files that are part of Dispatch
itself :(
{code}
bool IncludeCategoryManager::isMainHeader(StringRef IncludeName) const {
if (!IncludeName.startswith("\""))
return false;
{code}
https://github.com/llvm/llvm-project/blob/2c4548e18e09686659bddad617b8c42a47714540/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp#L235-L237
> Source file organization suffers from include hell
> --------------------------------------------------
>
> Key: DISPATCH-836
> URL: https://issues.apache.org/jira/browse/DISPATCH-836
> Project: Qpid Dispatch
> Issue Type: Improvement
> Components: Container, Router Node, Routing Engine
> Affects Versions: 0.8.0
> Reporter: Charles E. Rolke
> Assignee: Jiri Daněk
> Priority: Minor
> Fix For: 1.16.0
>
>
> Adding an innocent looking #include to some module may unleash a barrage of
> errors instead of simply defining the header's interface. Reordering and/or
> adding more #include statements is required to get it right.
> A good way to address this is to make certain that each module.h file
> compiles cleanly on its own. It is tedious and pretty unrewarding to check
> each file. One strategy to address this problem is for each module to
> _#include module.h_ as the first include\[1\]. Then every compile checks that
> the module.h files compiles cleanly. This strategy is recommended by
> astitcher and used by qpid-cpp with great results.
> \[1\] One exception to this rule is including the #include Python.h ahead of
> all others. This is a requirement.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]