diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /third_party/libwebrtc/g3doc/style-guide/h-cc-pairs.md | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/g3doc/style-guide/h-cc-pairs.md')
-rw-r--r-- | third_party/libwebrtc/g3doc/style-guide/h-cc-pairs.md | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/third_party/libwebrtc/g3doc/style-guide/h-cc-pairs.md b/third_party/libwebrtc/g3doc/style-guide/h-cc-pairs.md new file mode 100644 index 0000000000..08eed85c23 --- /dev/null +++ b/third_party/libwebrtc/g3doc/style-guide/h-cc-pairs.md @@ -0,0 +1,32 @@ +<!-- go/cmark --> +<!--* freshness: {owner: 'danilchap' reviewed: '2021-05-12'} *--> + +# `.h` and `.cc` files come in pairs + +This is an overflow page for [this](/g3doc/style-guide.md#h-cc-pairs) +style rule. + +## Example violations + +Example violations, which should be avoided in new code: + +* Declarations in `path/to/include/foo.h`, definitions in + `path/to/source/foo.cc`. **Fix:** The `.h` and `.cc` files should be + in the same directory. +* Declarations in `foo.h`, definitions in both `foo_bar.cc` and + `foo_baz.cc`. **Fix:** The `.h` and `.cc` files should come in + pairs, so either split `foo.h` into `foo_bar.h` and `foo_baz.h`, or + merge `foo_bar.cc` and `foo_baz.cc` into `foo.cc`. + +## Exception for platform-specific code + +If the functions in a header file need different implementations for +different platforms, we allow the following arrangement: + +* Declarations in `foo.h`. +* A complete set of matching definitions in `foo_win.cc`, another + complete set of matching definitions in `foo_mac.cc`, and so on. +* As per the main rule, these files should all be in the same + directory and in the same build target. The build target should use + platform conditionals to ensure that exactly one of the `.cc` files + are included. |