.. title:: clang-tidy - readability-avoid-unconditional-preprocessor-if readability-avoid-unconditional-preprocessor-if =============================================== Finds code blocks that are constantly enabled or disabled in preprocessor directives by analyzing ``#if`` conditions, such as ``#if 0`` and ``#if 1``, etc. .. code-block:: c++ #if 0 // some disabled code #endif #if 1 // some enabled code that can be disabled manually #endif Unconditional preprocessor directives, such as ``#if 0`` for disabled code and ``#if 1`` for enabled code, can lead to dead code and always enabled code, respectively. Dead code can make understanding the codebase more difficult, hinder readability, and may be a sign of unfinished functionality or abandoned features. This can cause maintenance issues, confusion for future developers, and potential compilation problems. As a solution for both cases, consider using preprocessor macros or defines, like ``#ifdef DEBUGGING_ENABLED``, to control code enabling or disabling. This approach provides better coordination and flexibility when working with different parts of the codebase. Alternatively, you can comment out the entire code using ``/* */`` block comments and add a hint, such as ``@todo``, to indicate future actions.