I wonder why .sizeof is implemented as a property while typeof() and typeid() are functions. I can see no reasons for such inconsistency. It's not that obvious for typeof() because it yields a type instead of a value, but even then, why not ?