> Isn’t this a short-term concern? I thought that requirement was going away.
AFAIK there are still concerns about ambiguity - [Int] - is it an array with
one element (Int.self), or is it [Int].self?
>
>> For this reason, this proposal prefers using no-label calls for types
>> (otherwise they would have been ofType) and labeled calls for values:
>>
>> print(sizeof(Int)) // works
>> print(sizeof(Int.self)) // works
>>
>> func withoutLabel<T>(thetype: T.Type) -> Int { return sizeof(T) }
>> func withLabel<T>(label label: T.Type) -> Int { return sizeof(T) }
>>
>>
>> // Works
>> print(withoutLabel(Int))
>>
>> // Works
>> print(withLabel(label: Int.self))
>>
>> // Does not work
>> // error: cannot create a single-element tuple with an element label
>> // print(withLabel(label: Int))
>>
>>
>> So with this in mind:
>>
>> /// Returns the contiguous memory footprint of `T`.
>> ///
>> /// Does not include any dynamically-allocated or "remote" storage.
>> /// In particular, `size(X.self)`, when `X` is a class type, is the
>> /// same regardless of how many stored properties `X` has.
>> public func size<T>(_: T.Type) -> Int
>>
>> /// Returns the contiguous memory footprint of `T`.
>> ///
>> /// Does not include any dynamically-allocated or "remote" storage.
>> /// In particular, `size(of: a)`, when `a` is a class instance, is the
>> /// same regardless of how many stored properties `a` has.
>> public func size<T>(of: T) -> Int
>>
>> /// Returns the least possible interval between distinct instances of
>> /// `T` in memory. The result is always positive.
>> public func spacing<T>(_: T.Type) -> Int
>>
>> /// Returns the least possible interval between distinct instances of
>> /// `T` in memory. The result is always positive.
>> public func spacing<T>(of: T) -> Int
>>
>> /// Returns the minimum memory alignment of `T`.
>> public func alignment<T>(_: T.Type) -> Int
>>
>> /// Returns the minimum memory alignment of `T`.
>> public func alignment<T>(of: T) -> Int
>> -- E
>
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution