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.