Apache Celix is a framework for C and C++14 to develop dynamic modular software applications using component and in-process service-oriented programming.
The Main Module Header file applies to .cpp files which implement an interface defined by a .h file. This #include should always be included first regardless of where it lives on the file system. By including a header file first in the .cpp files that implement the interfaces, we ensure that the header does not have any hidden dependencies which are not explicitly #included in the header, but should be. It is also a form of documentation in the .cpp file to indicate where the interfaces it implements are defined.
LLVM project and subproject headers should be grouped from most specific to least specific, for the same reasons described above.
For more, check this.
How about adding it to our coding conventions and .clang-format?
I just came across LLVM's coding standard during my LLVM adventure, and found the paragraph about
#include
style inspiring:For more, check this. How about adding it to our coding conventions and
.clang-format
?