[PATCH] D46668: [STLExtras] Add distance() for ranges, pred_size(), and succ_size()

David Blaikie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 14 11:59:17 PDT 2018


dblaikie added subscribers: vsk, dblaikie.
dblaikie added a comment.

I feel like a range-based version of std::distance isn't so much distance
anymore, by virtue of it being over a range & is actually probably more
suitably named 'size'. (in the case of std::distance, the name is really
talking about the two elements separately "what's the distance from this
iterator to this other iterator" not talking about a range defined by those
two iterators - so the name make sense there in a way that I don't think it
makes sense for ranges ("what is the distance of a range?" isn't a
cromulant question, I think... ))

I'd vote for llvm::size (& I think the general idea/concept/thing is a good
thing to add).

Though I guess one issue with size/distance is: how expensive is this? I'd
sort of be inclined only to provide this for ranges over random access
iterators (so it's only O(1), never O(N)), maybe? Let the more obscure
cases use std::distance(begin, end) to hopefully clarify that they're
weird/interesting/maybe expensive.


Repository:
  rL LLVM

https://reviews.llvm.org/D46668





More information about the llvm-commits mailing list