[base] Allow non-trivial value_types in IsContiguousIterator
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:Daniel Cheng <dcheng@chromium.org> Cr-Commit-Position: refs/heads/master@{#844711}
Showing
Please register or sign in to comment