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>) {

Also the step3 and step4 may be inlined on the assemble level and make this loop very efficient.

Best regards,