Rule A6-5-4 (advisory, implementation, automated)

For-init-statement and expression should not perform actions other than loop-counter initialization and modification.

Rationale

If only a loop-counter is used in the for-init-statement and expression, it increases readability and it is easier to understand and maintain code.

Example

// $Id: A6-5-4.cpp 305629 2018-01-29 13:29:25Z piotr.serwa $
#include <cstdint>

void Fn() noexcept
{
    for (std::int32_t x = 0, MAX = 10; x < MAX; x++) // compliant with A6-5-2, but
                                                     // non-compliant with advisory A6-5-4
    {
        // ...
    }
}

See also

JSF December 2005 [8]: AV Rule 198: The initialization expression in a for loop will perform no actions other than to initialize the value of a single for loop parameter.

JSF December 2005 [8]: AV Rule 199: The increment expression in a for loop will perform no action other than to change a single loop parameter to the next value for the loop.