C++ coding style
================

* C++20
* Indent by 4 spaces
* Up to 120 characters per line
* Comments start with two forward slashes: ``//``
* Docstrings start with three forward slashes: ``///``
* See .clang-format for more details and examples


Character case
--------------

* Types: CamelCase
* Classes: CamelCase
* Functions: snake_case
* Variables: snake_case
* Arguments: snake_case
* Constants: UPPER_CASE


Includes
--------
* Includes grouped and alphabetically ordered within each group::

    #include "current-dir-include.hpp"

    #include <libdnf5-cli/.../*.hpp>

    #include <libdnf5/.../*.hpp>

    #include <3rd party>

    #include <standard library>

* Includes within the same directory should use relative paths::

     #include "current-dir-include.hpp"

* Other includes should use absolute paths::

    #include <libdnf5/.../*.hpp>

* Includes within the same component should use the double-quote form. E.g. in dnf5::

    #include "commands/.../*.hpp"

* Includes from a different component in the repository should use the angle-bracket form. E.g. in dnf5::

    #include <libdnf5/.../*.hpp>
