MCPcopy Create free account
hub / github.com/BowenFu/matchit.cpp / matchPatternRangeImpl

Function matchPatternRangeImpl

develop/matchit/patterns.h:1129–1144  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1127 template <std::size_t patternStartIdx, std::size_t... I, typename RangeBegin,
1128 typename PatternTuple, typename ContextT>
1129 constexpr decltype(auto) matchPatternRangeImpl(RangeBegin &&rangeBegin,
1130 PatternTuple &&patternTuple,
1131 int32_t depth, ContextT &context,
1132 std::index_sequence<I...>)
1133 {
1134 auto const func = [&](auto &&value, auto &&pattern)
1135 {
1136 return matchPattern(std::forward<decltype(value)>(value), pattern,
1137 depth + 1, context);
1138 };
1139 static_cast<void>(func);
1140 // Fix Me, avoid call next from begin every time.
1141 return (func(*std::next(rangeBegin, static_cast<long>(I)),
1142 std::get<I + patternStartIdx>(patternTuple)) &&
1143 ...);
1144 }
1145
1146 template <std::size_t patternStartIdx, std::size_t size,
1147 typename ValueRangeBegin, typename PatternTuple, typename ContextT>

Callers

nothing calls this directly

Calls 1

matchPatternFunction · 0.85

Tested by

no test coverage detected