[swift-evolution] [Review] SE-0101: Rename sizeof and related functions to comply with API Guidelines

Dave Abrahams dabrahams at apple.com
Tue Jun 21 15:23:07 CDT 2016




on Tue Jun 21 2016, Joe Groff <swift-evolution-m3FHrko0VLzYtjvyW6yDsg at public.gmane.org> wrote:

> 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.)

Would it be as fully specializable down to a compile-time constant?

-- 
Dave



More information about the swift-evolution mailing list