The project follows the coding conventions commonly accepted by the C++ development community rather than inventing its own rules, although some deviations are allowed to achieve a wider level of comfort for the involved developers.
Please refer to the C++ Programming Style Guidelines
as the basic conventions used by the project. The major differences from the aforementioned conventions are listed underneath.
#7. Namespaces are mixed case and start with upper case, e.g. Firebird, Jrd, etc.
#10. Global variables may be referred to without the :: prefix. From another side, usage of globals is highly limited.
#11. Private data members could be used without any prefix/suffix, although the "m_" prefix is recommended.
#23. Not commonly used, instead the variable name may contain the words "number" or "count".
#36. Trivial method implementations are allowed inline. It could also be done for performance-critical methods.
#37. The line length limit is extended to 100 columns.
#38. Tabs are allowed and must be used for indentation.
#41. System headers can be included after the project ones.
#53. Explicit tests for numeric zeros are not enforced, although recommended.
#58. Break statements are allowed inside the loops.
#61. Temporary boolean variables are used for over-complicated conditions only.
#70. Both "0" and "NULL" are allowed for pointers.
#71. Basic indentation is one tab (usually set up as four spaces).
#72. The first option (opening brace is in the same line) must not be used if the condition exceeds one line.
#85. Spaces are not allowed between the routine name and parenthesis.