[swift-evolution] [Review] SE-0101: Rename sizeof and related	functions to comply with API Guidelines
    Erica Sadun 
    erica at ericasadun.com
       
    Tue Jun 28 15:53:58 CDT 2016
    
    
  
On Jun 28, 2016, at 12:11 PM, Dave Abrahams via swift-evolution <swift-evolution at swift.org> wrote:
>>> I think it would.  It would *really* help if someone would prepare a
>>> patch that uses both APIs so we could see how the resulting code looks
>>> in practice. :-)
>>> 
>>> -- 
>>> Dave
>> 
>> Here you go:
>> https://gist.github.com/erica/57a64163870486468180b8bab8a6294e
>> <https://gist.github.com/erica/57a64163870486468180b8bab8a6294e <https://gist.github.com/erica/57a64163870486468180b8bab8a6294e>>
> 
> Thanks for the proposal, Erica.  It contains some errors that I pointed
> out in a comment on the Gist.  Care to fix those?
> 
public struct MemoryLayout<T> {
    public static var size: Int { return sizeof(T) }
    public static var interval: Int { return strideof(T) }
    public static var alignment: Int { return alignof(T) }
    
    init(_ : @autoclosure () -> T) {}
}
print(MemoryLayout<Int>.size) // 8
print(MemoryLayout<Int>.interval) // 8
print(MemoryLayout<Int>.alignment) // 8
let x = 8
print(MemoryLayout(x).dynamicType.size) // 8
print(MemoryLayout(x).dynamicType.interval) // 8
print(MemoryLayout(x).dynamicType.alignment) // 8
-- E
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160628/a48f1a53/attachment.html>
    
    
More information about the swift-evolution
mailing list