playground

 First Second Third Fourth Fifth   Fifth-1 [..c++20)        Fifth-1-a     Fifth-1-b [c++11..) </li> </ul> </li>  Fifth-2 [c++11..c++20)    <ul>    Fifth-2-a</li>    Fifth-2-a</li>    </ul>  </li>   Fifth-3 [..c++20) <ul> Fifth-3-a</li> Fifth-3-a</li> </ul> </li> Fifth-4 <ul> Fifth-4-a</li>  Fifth-4-b [..c++20) </li>    Fifth-4-b [c++14..c++20) </li> </ul> </li> </ul> </li> </ol>

The potential scope of a name declared begins at the point of declaration and ends at the end of the controlled statement.
 * in the init-statement of a ,
 * in the condition of a ,
 * in the range_declaration of a ,
 * in the condition of a, , or
 * in the condition of a, , or

(a slightly optimized variation.)