> On Jun 2, 2016, at 3:35 PM, Tony Allevato via swift-evolution 
> <[email protected]> wrote:
> 
> On Thu, Jun 2, 2016 at 2:25 PM Xiaodi Wu <[email protected] 
> <mailto:[email protected]>> wrote:
> On the other hand, on its own sizeof() is not unsafe, and so the argument 
> that it should be longer to call attention to itself (by analogy with 
> UnsafePointer) isn't quite apt.
> 
> And I'm not sure we really want to encourage anyone else to be defining a 
> global function named size(of:) anyway, so I wouldn't consider vacating that 
> name for end-user purposes to be a meaningful positive.
> 
> I was thinking more of situations where someone is in a scope (such as a 
> method in a struct or class) that has its own size(of:) method but also needs 
> to do something with the global size(of:) and now has to distinguish the two. 
> I'll admit that the likelihood of all of those stars aligning is probably 
> rare, though.
> 
> That being said, I see no reason to choose a very general name over one that 
> is far more descriptive. We should optimize for the N times an expression is 
> read instead of the one time it's written.

/// Returns the contiguous memory footprint of `T`.
///
/// Does not include any dynamically-allocated or "remote" storage.
/// In particular, `memorySize(ofType: X.self)`, when `X` is a class type, is 
the
/// same regardless of how many stored properties `X` has.
public func memorySize <T>(ofType: T.Type) -> Int

/// Returns the contiguous memory footprint of  `T`.
///
/// Does not include any dynamically-allocated or "remote" storage.
/// In particular, `memorySize(of: a)`, when `a` is a class instance, is the
/// same regardless of how many stored properties `a` has.
public func memorySize <T>(of: T) -> Int

/// Returns the least possible interval between distinct instances of
/// `T` in memory.  The result is always positive.
public func memoryInterval<T>(ofType: T.Type) -> Int

/// Returns the least possible interval between distinct instances of
/// `T` in memory.  The result is always positive.
public func memoryInterval <T>(of: T) -> Int

/// Returns the minimum memory alignment of `T`.
public func memoryAlignment<T>(ofType: T.Type) -> Int

/// Returns the minimum memory alignment of `T`.
public func memoryAlignment <T>(of: T) -> Int


https://github.com/erica/swift-evolution/blob/sizestride/proposals/XXXX-sidestride.md
 
<https://github.com/erica/swift-evolution/blob/sizestride/proposals/XXXX-sidestride.md>

-- E


_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to