Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 9 additions & 16 deletions llvm/include/llvm/ADT/ilist_node.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,11 @@ class ilist_iterator_w_bits;
template <class OptionsT> class ilist_sentinel;

// Selector for which iterator type to pick given the iterator-bits node option.
template <bool use_iterator_bits, typename Opts, bool arg1, bool arg2>
struct ilist_select_iterator_type {
using type = std::conditional_t<use_iterator_bits,
ilist_iterator_w_bits<Opts, arg1, arg2>,
ilist_iterator<Opts, arg1, arg2>>;
};
template <class OptionsT, bool IsReverse, bool IsConst>
using ilist_select_iterator_type =
std::conditional_t<OptionsT::has_iterator_bits,
ilist_iterator_w_bits<OptionsT, IsReverse, IsConst>,
ilist_iterator<OptionsT, IsReverse, IsConst>>;

/// Implementation for an ilist node.
///
Expand Down Expand Up @@ -91,18 +90,12 @@ class ilist_node_impl
friend class ilist_iterator_w_bits<OptionsT, true, true>;

protected:
using self_iterator =
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
false, false>::type;
using const_self_iterator =
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
false, true>::type;
using self_iterator = ilist_select_iterator_type<OptionsT, false, false>;
using const_self_iterator = ilist_select_iterator_type<OptionsT, false, true>;
using reverse_self_iterator =
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
true, false>::type;
ilist_select_iterator_type<OptionsT, true, false>;
using const_reverse_self_iterator =
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
true, true>::type;
ilist_select_iterator_type<OptionsT, true, true>;

ilist_node_impl() = default;

Expand Down
15 changes: 4 additions & 11 deletions llvm/include/llvm/ADT/simple_ilist.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,18 +92,11 @@ class simple_ilist
using reference = typename OptionsT::reference;
using const_pointer = typename OptionsT::const_pointer;
using const_reference = typename OptionsT::const_reference;
using iterator =
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
false, false>::type;
using const_iterator =
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
false, true>::type;
using reverse_iterator =
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
true, false>::type;
using iterator = ilist_select_iterator_type<OptionsT, false, false>;
using const_iterator = ilist_select_iterator_type<OptionsT, false, true>;
using reverse_iterator = ilist_select_iterator_type<OptionsT, true, false>;
using const_reverse_iterator =
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
true, true>::type;
ilist_select_iterator_type<OptionsT, true, true>;
using size_type = size_t;
using difference_type = ptrdiff_t;

Expand Down
Loading