+1.  I haven’t found use for it, and I don’t think there is one outside of 
stdlib.

~Robert Widmann

> On Oct 10, 2016, at 6:12 PM, Erik Eckstein via swift-evolution 
> <[email protected]> wrote:
> 
> The purpose of ManagedBufferPointer is to create a buffer with a custom 
> class-metadata to be able to implement a custom deinit (e.g. to destroy the 
> tail allocated elements).
> It was used in Array (before I replaced it with the new 
> tail-allocated-array-built-ins). But now it’s not used anymore in the 
> standard library.
> 
> As a replacement for ManagedBufferPointer one can just derive a class from 
> ManagedBuffer and implement the deinit in the derived class.
> 
> final class MyBuffer : ManagedBuffer<MyHeader, MyElements> {
>   deinit {
>     // do whatever needs to be done
>   }
> }
> 
> // creating MyBuffer:
> let b = MyBuffer.create(minimumCapacity: 27, makingHeaderWith: { myb in 
> return MyHeader(...) })
> 
> IMO ManagedBuffer is much cleaner than ManagedBufferPointer (it doesn’t need 
> this custom bufferClass to be passed to the constructor). Also 
> ManagedBufferPointer doesn’t use SIL tail-allocated arrays internally. 
> Although this is not something visible to the programmer, it makes life 
> easier for the compiler.
> 
> So I suggest that we deprecate ManagedBufferPointer.
> 
> Erik
> _______________________________________________
> 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

Reply via email to