| 90 | } |
| 91 | |
| 92 | template<class T, class Predicate, class Evaluate, REQUIRES("T must be a Token class", std::is_convertible<T*, const Token*> )> |
| 93 | std::vector<T*> findTokensSkipDeadCode(const Library& library, |
| 94 | T* start, |
| 95 | const Token* end, |
| 96 | const Predicate& pred, |
| 97 | const Evaluate& evaluate) |
| 98 | { |
| 99 | std::vector<T*> result; |
| 100 | (void)internal::findTokensSkipDeadCodeImpl( |
| 101 | library, |
| 102 | start, |
| 103 | end, |
| 104 | pred, |
| 105 | [&](T* tok) { |
| 106 | result.push_back(tok); |
| 107 | return false; |
| 108 | }, |
| 109 | evaluate, |
| 110 | false); |
| 111 | return result; |
| 112 | } |
| 113 | |
| 114 | template<class T, class Predicate, REQUIRES("T must be a Token class", std::is_convertible<T*, const Token*> )> |
| 115 | std::vector<T*> findTokensSkipDeadCode(const Library& library, T* start, const Token* end, const Predicate& pred) |
no test coverage detected