Eclair VecGeom& GeantV rules

Rules


Comments

UCGP1.C1 Comment content should be compliant.
Meaning: comments should use a specific vocabulary. Trivial punctuation/capitalization typos are shown.


UCGP1.C2 Compliant file comment is required.
Meaning: the notion of compliant file comment is defined by means of regular expressions.

UCGP1.C3 Compliant class comment is required.
Meaning: the notion of compliant class comment is defined by means of regular expressions.


UCGP1.C4 Compliant function/method comment is required.
Meaning: the notion of compliant function/method comment is defined by means of regular expressions.


UCGP1.C5 C++ comment style is preferred.


UCGP1.C6 Commenting large code area should be avoided.


UCGP1.C7 Comment should be Doxygen-compliant.


Formatting

UCGP1.F1 TAB should be avoided.


UCGP1.F2 Indentation should be compliant.


UCGP1.F3 #include order should be compliant.


Language Subset

UCGP1.S1 Warning-as-error compiler option is required.
Meaning: translation-units that are compiled without that options are flagged.


UCGP1.S2 Only the language subset well supported by gcc, msvc, clang should be used.
Note: unsupportable unless clarified.


UCGP1.S3 Static constructor should be avoided.


UCGP1.S4 Record tag incongruence should be avoided.


UCGP1.S5 List initializer should be avoided.


UCGP1.S6 Use of auto should be compliant.
Meaning: auto should be used when type is readable in initializer or for iterators.


UCGP1.S7 auto* / auto& should be preferred to auto.

Meaning: auto whose deduced type is a pointer should be written as auto*; auto whose deduced type has a non-trivial copy constructor or it is larger than N bytes should be written as auto&.


High-Level Style

UCGP1.H1 File name should be compliant.
Meaning: file name should match a top level or named namespace level declaration.


UCGP1.H2 Needless #include should be avoided.


UCGP1.H3 Internal header should be preferred.
Note: unsupportable unless clarified.