MCPcopy Create free account
hub / github.com/boostorg/parser / apply_parser

Function apply_parser

include/boost/parser/parser.hpp:2279–2303  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2277 typename SkipParser,
2278 typename... T>
2279 void apply_parser(
2280 Parser const & parser,
2281 Iter & first,
2282 Sentinel last,
2283 Context const & context,
2284 SkipParser const & skip,
2285 flags flags,
2286 bool & success,
2287 std::optional<std::variant<T...>> & retval)
2288 {
2289 using attr_t = decltype(parser.call(
2290 first, last, context, skip, flags, success));
2291 if constexpr (std::is_same<
2292 attr_t,
2293 std::optional<std::variant<T...>>>{}) {
2294 parser.call(first, last, context, skip, flags, success, retval);
2295 } else if constexpr (is_nope_v<attr_t>) {
2296 parser.call(first, last, context, skip, flags, success);
2297 } else {
2298 auto attr =
2299 parser.call(first, last, context, skip, flags, success);
2300 if (success)
2301 detail::assign(retval, std::variant<T...>(std::move(attr)));
2302 }
2303 }
2304
2305 template<
2306 typename Parser,

Callers 3

callMethod · 0.85
operator()Method · 0.85
operator()Method · 0.85

Calls 2

assignFunction · 0.85
callMethod · 0.45

Tested by

no test coverage detected