The LSST C++ Coding Style Guidelines are available at C++ Coding Standard. The Rules provide the look-and-feel of LSST DM coding style and the expectations for LSST DM statement construction. Recall that C++ Coding Standards Rules fall into 3 categories:
- REQUIRED : required except by DM PM authorization,
- MUST or SHALL : required except by package guru authorization, and
- MAY or SHOULD or RECOMMENDED : good programming practices.
Refer to C++ Coding Standard#Introduction for the Detailed explanation.
To the extent possible, REQUIRED, MUST and SHALL rules will be checked by automated software with reports mailed to the developer; SHOULD, RECOMMENDED and MAY rules may also be checked by automated software with a separate report.
Upon receiving a Standards Compliance report, the developer is expected to resolve the mandatory issues. Many LSST Rules may be 'broken' if the developer feels there are good reasons for not following the Standards; this caveat might be tightened up if the developers aren't primarily holding to the Standards.
Steve Bickerton implemented a C++ Coding Standards checker based on Python regex matching. It implements about 50 of the DM C++ Coding Standards Rules.
The code is available from https://dev.lsstcorp.org/cgit/LSST/DMS/devenv/lsst.git/tree/scripts/style.py and may be directly run on your local system.
Use this tool to check your DM C++ Coding Standards compliance.