HomePhabricator

[ADT] use is_base_of inplace of is_same for random_access_iterator_tag checks

Authored by njames93 on Tue, Jul 21, 1:55 AM.

Description

[ADT] use is_base_of inplace of is_same for random_access_iterator_tag checks

Replace std::is_same<X, std::random_access_iterator_tag> with std::is_base_of<std::random_access_iterator_tag, X> in STLExtra algos.

This doesn't have too much impact on LLVM internally as no structs derive from it.
However external projects embedding LLVM may use std::contiguous_iterator_tag which should be considered by these algorithms.
As well as any other potential tags people want to define derived from std::random_access_iterator_tag

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D84141

Details