On Sonntag, 22. August 2021 06:11:58 CEST Richard Henderson wrote: > On 8/21/21 1:30 PM, Christian Schoenebeck wrote: > > Unfortunately something like > > > > _Static_assert(typeof(a) == typeof(b), "type mismatch"); > > > > is currently not suported by C. So for the time being at least > > check that the size of the scalar types match at compile time. > > Did you try > _Static_assert(__builtin_types_compatible_p(X, Y), "type mismatch"); > > > r~
Ah, you are right. I was trying it, but now as you pointed me at it again, I realized I was just missing something. The specific use case here is like: struct Foo { ... } Foo; Foo *var; _Static_assert(__builtin_types_compatible_p(Foo, typeof(*var)), "type mismatch"); So I was missing the typeof() keyword to deduce the scalar type from the passed variable. I'll send a v2. Thanks! Best regards, Christian Schoenebeck