Endilll wrote:

@erichkeane I guess you'd be pretty happy if our enums were declared the 
following way:
```cpp
enum E : unsigned _BitInt(4) {
  e0 = 16,
};
```
Then you'd be warned on the spot if you have more values than bits can hold, 
and bit-fields side check would be trivial to implement:
```
<source>:3:8: error: enumerator value evaluates to 16, which cannot be narrowed 
to type 'unsigned _BitInt(4)' [-Wc++11-narrowing]
  e0 = 16,
```
Unfortunately, Clang 14+ is the only major implementation that accepts this: 
https://godbolt.org/z/9rn87d8hc

https://github.com/llvm/llvm-project/pull/69104
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to