apache / apache/celix

#include style

Open
#742 0 comments 0 reactions 0 assignees View on GitHub
project/style
Dominant language
C
Stars
193
Forks
99
Avg merge
1m
Merged PRs (30d)
1

Description

I just came across LLVM's coding standard during my LLVM adventure, and found the paragraph about `#include` style inspiring:

> We prefer these #includes to be listed in this
> 1. Main Module
> 2. Local/Private Headers
> 3. LLVM project/subproject headers (clang/..., lldb/..., llvm/..., etc)
> 4. System #includes

>The [Main Module Header](https://llvm.org/docs/CodingStandards.html#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](https://llvm.org/docs/CodingStandards.html#include-style).
How about adding it to our coding conventions and `.clang-format`?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.