Andrei Alexandrescu escribió:
Simen Kjaeraas wrote:
Andrei Alexandrescu wrote:

So please let's vote once and for all.

Andrei

Do let's. My first vote goes to first/last, with head/toe at second place.

--
Simen

Ok, after looking at my code I discovered a huge problem with "first". ("Last" is cool.) If all you do is implement them and use them with foreach, fine. But if you need to call them manually (which is the case sometimes), you get really badly interacting terms there. Look at this, taken from real code (the filter function):

while (!_input.empty && !pred(_input.first)) _input.next;

I can see the putative user scratching their head: "Ok, so I start iteration with the first element, then I move to the next one... but then why the heck am I looking at the first again?"

"First" must go.

Shouldn't the user think the same with "head" or "front"?

I think the problem is "next" in this case: it should be "moveToNext" or something that shows that you are changing the input, not just requesting the next element in the range.

But keep "next". Once the user starts using ranges, he'll understand the terminology, which is pretty straightforward.

I vote for first/last.

Reply via email to