C++ Logo

std-proposals

Advanced search

Re: dofor loop

From: Михаил Найденов <mihailnajdenov_at_[hidden]>
Date: Fri, 27 Dec 2019 13:31:40 +0200
Note that raw loops are out of fashion right now. Also, there are arguably
too many iteration statements already, considering all can be expressed
with one or two of the existing ones.
Can you give some compelling examples.

On Fri, Dec 27, 2019 at 1:04 PM Menashe Rosemberg via Std-Proposals <
std-proposals_at_[hidden]> wrote:

> Hi,
>
> The loops we have in c++ are loop while, for and do...while. How they work
> is pretty know, but I will describe them shortly (in their general use) to
> better demonstrate my proposal.
>
> 1. while:
> step1: Evaluate condition. Continue to step2 if the condition is true
> step2: Execute statements
> step3: return to step1
>
> 2. do:
> step1: Execute statements
> step2: Evaluate condition. Return to srep1 if the condition is true
>
> 3 for:
> step1: create a counter
> step2: Evaluate condition. Continue to step3 if the condition is true
> step3: Execute statements
> step4: Execute an mathematics operation (with the counter) and return to
> step2
>
> What I see is we have a lack of one more that may help to make the c++
> language more robust and elegant and that is a union of loop do and for to
> form a 'dofor' loop. It may have the same syntax of for loop but the
> condition is evaluated in the end not in the start of loop as do loop does.
>
> dofor loop:
> step1: create a counter
> step2: execute statements
> step3: Execute a mathematics operation (with the counter)
> step4: return to step2 if condition is true
>
> The syntax could be similar to for like that:
>
> dofor ( <variable declaration>; <mathematics operation>; <condition>) {
> statements...
> }
>
> Also the step3 and step4 may be inlined on the assemble level and make
> this loop very efficient.
>
> Best regards,
> TheArquitect
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>

Received on 2019-12-27 05:34:22