C++ Logo

std-proposals

Advanced search

Re: dofor loop

From: Jake Arkinstall <jake.arkinstall_at_[hidden]>
Date: Fri, 27 Dec 2019 13:51:13 +0000
Raw loops are out of fashion in one or two of the many programming
paradigms in C++. That does not mean they are out of fashion in C++ as a
whole, just in a couple of sub-communities. As soon as it is realised that
the functional approach is just another type of hammer that isn't suited to
every nail, the mentality of purism will fade away like it always does.

Nonetheless, I see little utility in a do-for loop, and I too would like to
see a compelling, real world example. The ones given so far are neither.


On Fri, 27 Dec 2019, 11:31 Михаил Найденов via Std-Proposals, <
std-proposals_at_[hidden]> wrote:

> 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
>>
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>

Received on 2019-12-27 07:53:52