I didn't know that normally-copying initialiser was non-copying for 
ContiguousArray. That's the kind of thing we should really document somewhere 
(or it should be it's own function because it guarantees non-copying behaviour).
 

 
If you're using CA explicitly, it's because you want those subtle performance 
guarantees.
 

 
Karl
 
 
 Sent from my new   Email 
(https://itunes.apple.com/app/apple-store/id922793622?pt=814382&mt=8&ct=my_new_email)
 
 
 
 

 
 
>  
> On Jul 28, 2016 at 10:32 AM,  <Dmitri Gribenko (mailto:[email protected])>  
> wrote:
>  
>  
>  
>  On Wed, Jul 27, 2016 at 11:08 PM, Karl via swift-evolution 
> <[email protected] (mailto:[email protected])>  wrote: 
> >  It seems like a reasonably large hole with a simple fix. Going from 
> >  ContiguousArray to Array is a kind-of upcasting conversion and should be 
> >  allowed -- it seems like that's almost the whole point of the type. 
>
> Hi Karl, 
>
> Converting a ContiguousArray to Array using Array's initializer is 
> O(1). Are you seeing something different? 
>
> Array.init: 
>
> https://github.com/apple/swift/blob/f8f6d61d195185f54aeba425dd0db8be4c5d163f/stdlib/public/core/Arrays.swift.gyb#L1037
>   
>
> ContiguousArray._copyToContiguousArray(): 
>
> https://github.com/apple/swift/blob/f8f6d61d195185f54aeba425dd0db8be4c5d163f/stdlib/public/core/Arrays.swift.gyb#L1430
>   
>
> Dmitri 
>
> -- 
> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if 
> (j){printf("%d\n",i);}}} /*Dmitri Gribenko  <[email protected] 
> (mailto:[email protected])>*/ 
>          
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to