[swift-evolution] Trial balloon: conforming sizeof, sizeofValue, etc. to naming guidelines

Dave Abrahams dabrahams at apple.com
Sun May 1 19:00:09 CDT 2016


on Thu Apr 28 2016, Xiaodi Wu <swift-evolution at swift.org> wrote:

> We all know and love sizeof(), but given that it's different from its C
> counterpart anyway, shouldn't these conform to Swift naming guidelines? In other
> words, after SE-0006, shouldn't these names be as follows?
>
> ```
> size<T>(of: T.Type)
> size<T>(ofValue: T)
> stride<T>(of: T.Type)
> stride<T>(ofValue: T)
> align<T>(of: T.Type)
> align<T>(ofValue: T)
> ```
>
> There are obvious issues with two different things named `stride`, but IMO
> that's best addressed by renaming one of them; the real problem is that the word
> stride is used in two different ways already. Thoughts?

These functions correspond to C and LLVM primitives and we consciously
kept those names because they are terms of art. I don't know that

  size(of: T.self)

is particularly descriptive usage, and if we were going to change them
so they didn't look like sizeof, strideof, alignof I'd want to make them
far more descriptive.  E.g.

  memoryFootprint(Int.self)

or

  bytesRequiredForStorage(Int.self)
  standardByteAlignment(Int.self)
  bytesBetweenArrayElements(Int.self)

etc.

-- 
Dave



More information about the swift-evolution mailing list