add __traits getBitfieldOffset and getBitfieldWidth (#17043)

This commit is contained in:
Walter Bright 2024-11-10 11:22:59 -08:00 committed by GitHub
parent e17cc3a28f
commit b70e66033c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 82 additions and 0 deletions

View file

@ -0,0 +1,16 @@
Add __traits getBitfieldOffset and getBitfieldWidth
This completes the introspection capabilities of builtin bitfields. For example:
---
struct S
{
int a,b;
int :2, c:3;
}
static assert(__traits(getBitfieldOffset, S.b) == 0);
static assert(__traits(getBitfieldOffset, S.c) == 2);
static assert(__traits(getBitfieldWidth, S.b) == 32);
static assert(__traits(getBitfieldWidth, S.c) == 3);
---