<
typenameSpecificAttr,
typenameContainer = AttrVec>
36 usingIterator =
typenameContainer::const_iterator;
45 mutableIterator Current;
47 voidAdvanceToNext()
const{
48 while(!isa<SpecificAttr>(*Current))
52 voidAdvanceToNext(Iterator I)
const{
53 while(Current != I && !isa<SpecificAttr>(*Current))
69 returncast<SpecificAttr>(*Current);
73 returncast<SpecificAttr>(*Current);
88assert((Left.Current ==
nullptr) == (Right.Current ==
nullptr));
89 if(Left.Current < Right.Current)
90Left.AdvanceToNext(Right.Current);
92Right.AdvanceToNext(Left.Current);
93 returnLeft.Current == Right.Current;
97 return!(Left == Right);
101template<
typenameSpecificAttr,
typenameContainer>
102inlinespecific_attr_iterator<SpecificAttr, Container>
106template<
typenameSpecificAttr,
typenameContainer>
107inlinespecific_attr_iterator<SpecificAttr, Container>
112template<
typenameSpecificAttr,
typenameContainer>
114 returnspecific_attr_begin<SpecificAttr>(container) !=
115specific_attr_end<SpecificAttr>(container);
117template<
typenameSpecificAttr,
typenameContainer>
119 usingValueTy = llvm::detail::ValueOfRange<Container>;
120 usingValuePointeeTy = std::remove_pointer_t<ValueTy>;
121 usingIterTy = std::conditional_t<std::is_const_v<ValuePointeeTy>,
122 constSpecificAttr, SpecificAttr>;
123 autoIt = specific_attr_begin<IterTy>(container);
124 returnIt != specific_attr_end<IterTy>(container) ? *It :
nullptr;
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
specific_attr_iterator - Iterates over a subrange of an AttrVec, only providing attributes that are o...
friend bool operator!=(specific_attr_iterator Left, specific_attr_iterator Right)
reference operator*() const
SpecificAttr * value_type
std::ptrdiff_t difference_type
std::forward_iterator_tag iterator_category
friend bool operator==(specific_attr_iterator Left, specific_attr_iterator Right)
specific_attr_iterator()=default
pointer operator->() const
specific_attr_iterator(Iterator i)
specific_attr_iterator & operator++()
specific_attr_iterator operator++(int)
The JSON file list parser is used to communicate input to InstallAPI.
bool hasSpecificAttr(const Container &container)
specific_attr_iterator< SpecificAttr, Container > specific_attr_end(const Container &container)
specific_attr_iterator< SpecificAttr, Container > specific_attr_begin(const Container &container)
auto * getSpecificAttr(const Container &container)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4