bool passed by ref, safe or not ?

Nick Treleaven nick at geany.org
Wed Jun 5 09:18:55 UTC 2024


On Wednesday, 5 June 2024 at 09:09:40 UTC, Kagamin wrote:
> On Wednesday, 5 June 2024 at 01:18:06 UTC, Paul Backus wrote:
>> The only safe values for a `bool` are 0 (false) and 1 (true).
>
> AFAIK that was fixed and now full 8-bit range is safe.

`cast(bool) someByte` is fine - that doesn't reinterpret the bit 
representation.

The problem is certain values such as `0x2` for the byte 
representation can cause the boolean to be both true and false:
https://issues.dlang.org/show_bug.cgi?id=20148#c3

Void initialization of bool and bool union fields are now 
deprecated in @safe functions as of 2.109. There is a remaining 
case of casting an array to bool[], which I am working on 
disallowing in @safe.


More information about the Digitalmars-d-learn mailing list