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