Regarding the issue of existential metatypes with sizeof:

Pyry Jahkola points out one instance where the memorySize(type(of: …)) 
workaround won't work. When the value is an existential, it's illegal to ask 
for the size of its dynamic type: the result can't be retrieved at compile time:

// Swift 2.2, 64-bit
let i = 123
print(sizeofValue(i)) //=> 8
let c: CustomStringConvertible = i
print(sizeofValue(c)) //=> 40
print(sizeof(c.dynamicType)) // error: cannot invoke 'sizeof' with an argument 
list of type '(CustomStringCo
This could be enabled by having sizeof and friends formally take an Any.Type 
instead of <T> T.Type. (This might need some tweaking of the underlying 
builtins to be able to open existential metatypes, but it seems implementable.)

-Joe
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to