On 7/5/21 8:14 AM, Rekel wrote:

> On Monday, 5 July 2021 at 14:22:24 UTC, jfondren wrote:
>> What use of long?
>>
>> remove returns the same type of range as it gets:
>
> My apology, I meant to say countUntil instead of remove in that context.

countUntil says it returns ptrdiff_t, which is the signed version of size_t:

  https://dlang.org/spec/type.html#ptrdiff_t

size_t is an alias of 'long' on 64-bit systems (it would be 'int' on 32-bit systems).

So, you needen't guess the type of count; it is ptrdiff_t :)

  ptrdiff_t index = countUntil(a, element);

However, its common to use 'auto' for return types of most algorithms as they may not be mentionable (although, not in this case; see Voldemort types):

  auto index = countUntil(a, element);

And I always think of 'const' first to prevent silly mistakes:

  const index = countUntil(a, element);

Some other people think of 'immutable' first in the same way:

  immutable index = countUntil(a, element);

All should work in this case but 'const' and 'immutable' will have a "turtles all the way down" behavior which may be cumbersome in some case e.g. when the type has indirections.

Ali

Reply via email to