From 7aa9e0424202218904d9e49ba7741e0efd8bcdee Mon Sep 17 00:00:00 2001 From: heck Date: Fri, 18 Mar 2022 01:03:06 +0100 Subject: [PATCH] Add README.md --- README.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..243128b --- /dev/null +++ b/README.md @@ -0,0 +1,56 @@ +# + +## Resources + +* Repository: +* Change management: +* Doc: + +* Maintainer: +* Build-maintainers: + * Build windows: + * Build android: + * ... + +## Requirements & Platforms + + +* License: GPL3 +* C++ standard: C++11 (or newer, but consider portability) +* supported compilers: gcc/clang (must be supported at least) +* Build sytem: GNU Make (Linux, macOS) + +## Coding conventions + +* Code-formatting: use clang-format + * Please try to use the .clang-format with the least necessary changes (maintainability and consistency within pEp) +* static-analysis: use clang-tidy + * Please try to use the .clang-tidy with the least necessary changes (maintainability and consistency within pEp) + +### Filenames + +implementation: .cc +header: .hh +template-implementation: .hxx + +### Namespaces + +all pEp source code must be in a top level namespace 'pEp'. +With this exception all other nested namespaces must be in 'CamelCase' + +#### using namespace +it is never encouraged to do 'use namespace std;'. In header files it is actually forbidden, and in implementation files it is +stronly discouraged, because as soon as you want to templatize, the 'using namespace' directive has to be replaced with explicit 'std::' prefixes, +because the templateized implementation will have to be in a header file extension (.hxx) +This applies strongly for the namespace 'std' and needs to be carefully considered for all other namespaces. + +### Include guards + +Do not use #pragma once , use #ifdef/#define style (portability reasons) +naming key: _ (e.g. `LIBPEPDATATYPES_FILENAME_HH`) + +### Identifiers + +* types: all types must start with an uppercase letter, CamelCase is recommended. +* variables: snake_case is recommended +* functions: snake_case is recommended