...
- Separate inline headers: We allow putting inline functions in separate files, using the suffix
.inline.h
. This can speed up compile times by reducing the volume of code to be compiled and reducing dependencies between headers. - Header include guards: for new code, we prefer #pragma once because it is cleaner than the classic #include guards
Variable Naming
We use UPPER_CASE for constants instead of kConstantName.
Scoping
- namespaces the
using namespace
directive is allowed in .cc files in limited cases where it greatly reduces code volume.- Pros: reduces code volume, less churn in "using namespace::class" directives.
- Cons: pollutes the namespace, causes conflicts, makes it more difficult to determine the type of an object
...
Code Block |
---|
// Google Recommends: ReturnType LongClassName::ReallyReallyReallyLongFunctionName( Type par_name1, // 4 space indent Type par_name2, Type par_name3) { DoSomething(); // 2 space indent ... } // we use: ReturnType LongClassName::ReallyReallyReallyLongFunctionName( Type par_name1, Type par_name2, Type par_name3) { // 4 space indent DoSomething(); // 2 space indent ... } |
3. Conditionals we format conditionals as follows
...
Code Block |
---|
git diff -U0 --no-color HEAD^ | "${IMPALA_TOOLCHAIN_PACKAGES_HOME}/llvm-${IMPALA_LLVM_VERSION}/share/clang/clang-format-diff.py" -binary "${IMPALA_TOOLCHAIN_PACKAGES_HOME}/llvm-${IMPALA_LLVM_VERSION}/bin/clang-format" -p1 -i |
...
Code Block |
---|
sudo apt-get install clang-format-3.9 git diff -U0 --no-color HEAD^ | clang-format-diff-3.9 -p1 -i |
...
Info | ||
---|---|---|
| ||
clang-format is not perfect and sometimes reformats things in strange ways, or will reformat large areas of code. If clang-format doesn't match the existing style of the surrounding code, please consider manually formatting that part of the code - mixing large white |
...
Code Block |
---|
git diff asf-gerrit/master | "${IMPALA_TOOLCHAIN_PACKAGES_HOME}/llvm-${IMPALA_LLVM_VERSION}/share/clang/clang-tidy-diff.py" -clang-tidy-binary "${IMPALA_TOOLCHAIN_PACKAGES_HOME}/llvm-${IMPALA_LLVM_VERSION}/bin/clang-tidy" -p 1 |
...