Yes but, if they weren’t functions now, what would be the best design?
How many Swift developers will be using this functionality? Less than 1%? I trust Dave’s judgement because he is in that small group.
···
On 2 Jun 2016, at 3:27 PM, Xiaodi Wu <xiaodi.wu@gmail.com> wrote:
On Thu, Jun 2, 2016 at 12:24 AM, Patrick Smith <pgwsmith@gmail.com <mailto:pgwsmith@gmail.com>> wrote:
I really like this idea. This IMO is lower level functionality than `type(of:)` (née dynamicType), so I think it makes sense for it to be grouped under its own domain, the MemoryLayout type.Plus MemoryLayout can be extended with new convenience methods.
I’m fine with those old methods being removed, but I never use them so! Is it the same as calling type(of:) then using that with MemoryLayout? I imagine they could be fixit’d easily, and that they compile down to the same underlying code.
I'm actually souring to the idea. It goes in the diametrically opposite direction from dynamicType. There, something was changed from being property-like to being function-like. Here, Dave's proposal would take something that's a function and turn it into a property. Hmm.
On 2 Jun 2016, at 3:05 PM, Xiaodi Wu via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
2. Dave A. and others expressed the opinion that these should probably not be global functions; his preference was for:
MemoryLayout<T>.size // currently sizeof() MemoryLayout<T>.spacing // currently strideof() MemoryLayout<T>.alignment // currently alignof()
3. Dave A. proposed that sizeofValue(), strideofValue(), and alignofValue() are better off removed altogether. I don't know if people are going to be happy about this idea.