Re:Safe C++ proposal is not being continued
by steveklabnik on Saturday September 13, 2025 @05:50PM
(#45235623)
Those are the unstable attributes that your sibling is talking about.
Re:Safe C++ proposal is not being continued
by 1718627440 on Saturday September 13, 2025 @06:05PM
(#45235695)
Yeah of course I can put what I want in my toy compiler. My statement was about standard C. I think that's what Contracts really are and hope this will be included in C.
Re:Safe C++ proposal is not being continued
by steveklabnik on Saturday September 13, 2025 @07:31PM
(#45236164)
Oh sure, I wouldn’t call rustc a “toy compiler” but yeah, they’d be cool in C as well.
Re:Safe C++ proposal is not being continued
by int_19h on Sunday September 14, 2025 @12:41AM
(#45237493)
Proper union types would get you there. If you have them, then each specific integer constant is basically its own type, and e.g. uint8 is just (0|1|2|...|255). So long as your type algebra has an operator that excludes one of the variants from the union to produce a new one, it's trivial to exclude whatever, and it's still easy for the compiler to reason about such types and to provide syntactic sugar for them like 0..255 etc.
Why do we need to single out a specific value. It would be way better if we also could use uint-without-5-and-42. What I would wish for is type attributes that really belong to the type.