The analogue of "fill-pointer" in D
John Colvin via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon May 18 11:19:25 PDT 2015
On Monday, 18 May 2015 at 17:43:50 UTC, Ali Çehreli wrote:
> On 05/18/2015 05:26 AM, John Colvin wrote:
>> On Monday, 18 May 2015 at 11:40:13 UTC, thedeemon wrote:
>>> On Monday, 18 May 2015 at 10:24:25 UTC, Dennis Ritchie wrote:
>>>
>>>> No, afraid not. Function capacity is not an analogue of
>>>> fill-pointers!
>>>
>>> It's exactly the same.
>>
>> But in D capacity is affected by other things.
>>
>> auto a = new int[20];
>> auto b = arr[0..10];
>> //can't now append to b without re-allocating or using
>> assumeSafeAppend.
>
> Perfect opportunity to inject my newly-discovered issue with
> capacity:
>
> void main()
> {
> auto a = new int[20];
> foo(a);
> //can't now append to a
> }
>
> void foo(const(int)[] p)
> {
> p ~= 42;
> }
>
> Ali
I don't understand what's counterintuitive here. Slices are just
pointer and length, everything else is global state.
More information about the Digitalmars-d-learn
mailing list