Date: Tue, 4 Apr 2023 17:58:55 +0200
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) {}
```
This would have benefits that compilers could more aggressively warn
if they see a loop that can't break and therefore create UB.
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) {}
```
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 15:59:09