• Jan Wilken Dörrie's avatar
    [base] Allow non-trivial value_types in IsContiguousIterator · 78cd93d3
    Jan Wilken Dörrie authored
    This change fixes an issue inside IsContiguousIterator that would fail
    compilation if it was instantiated with an iterator to a container that
    has a non-trivial value_type.
    
    This was because `IsContiguousIterator<It>` instantiated
    `std::basic_string<iter_value_t<It>>` to determine whether `It` was an
    iterator for a `std::basic_string`. This would then trigger a
    static_assert inside basic_string if `iter_value_t<It>` was not a trivial
    type. Now IsContiguousIterator<It> only attempts to instantiate a
    std::basic_string if `iter_value_t<It>` is a trivial type, avoiding this
    issue.
    
    Bug: 828324
    Change-Id: I1ab8d10b1847cca09041cc3f2fe623d2a04602fa
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2632958
    Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
    Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#844711}
    78cd93d3
contiguous_iterator_unittest.cc 13.4 KB