Date: Tue, 4 Apr 2023 22:01:24 +0200
Hi Marcin,
On 4/4/23 17:58, Marcin Jaczewski via Std-Proposals wrote:
> I wonder why not make infinite loops simply explicit?
> Like:
>
> ```
> while (std::infiniti) { }
> ```
>
> Now it will be clear to the reader and compiler that we expect it to
> be infinite.
> Reading `std::infiniti` would be considered an observable behavior or something
> like that.
>
> Alternative add attribute to signal to everyone that this loop should not break.
> We could even reuse attribute:
>
> ```
> [[noreturn]] while(true) {}
> ```
Already implemented in C23:
for (;;) {
// ...
}
unreachable();
<https://thephd.dev/ever-closer-c23-improvements#unreachable-macro-for-optimization-and-code-improvement>
Cheers,
Alex
>
> This would have benefits that compilers could more aggressively warn
> if they see a loop that can't break and therefore create UB.
On 4/4/23 17:58, Marcin Jaczewski via Std-Proposals wrote:
> I wonder why not make infinite loops simply explicit?
> Like:
>
> ```
> while (std::infiniti) { }
> ```
>
> Now it will be clear to the reader and compiler that we expect it to
> be infinite.
> Reading `std::infiniti` would be considered an observable behavior or something
> like that.
>
> Alternative add attribute to signal to everyone that this loop should not break.
> We could even reuse attribute:
>
> ```
> [[noreturn]] while(true) {}
> ```
Already implemented in C23:
for (;;) {
// ...
}
unreachable();
<https://thephd.dev/ever-closer-c23-improvements#unreachable-macro-for-optimization-and-code-improvement>
Cheers,
Alex
>
> This would have benefits that compilers could more aggressively warn
> if they see a loop that can't break and therefore create UB.
Received on 2023-04-04 20:01:29