• Philip Pfaffe's avatar
    Improve iterator_range to take non-&& arguments · c51c9f7c
    Philip Pfaffe authored
    The current implementation takes forwarding reference arguments, which
    is fine when you call it with rvalues, like
    make_iterator_range(V.begin(), V.end()). If you call it with lvalues
    though, it doesn't do what you'd expect. ForwardIterator becomes a
    reference:
    
    Foo I = V.begin();
    make_iterator_range(I, I); //ForwardIterator is deduced as Foo&
    
    Since iterator are supposed to be small, no harm in passing them by
    value.
    
    Change-Id: I151c87304949d810c72c42f60e9d1a7151f61f83
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2020780
    Commit-Queue: Philip Pfaffe <pfaffe@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66007}
    c51c9f7c
iterator.h 2.67 KB