* C++ standard: C++11 (or newer, but consider portability)
* supported compilers: gcc/clang (must be supported at least)
@ -22,32 +22,30 @@
## 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)
* 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
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'
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,
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.
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)