11 template<
typename Parser,
typename Fun>
12 class TransformParser :
public ParserBase<TransformParser<Parser, Fun>> {
14 template<
typename P,
typename F>
15 constexpr explicit TransformParser(InPlace, P&& parser, F&& function)
16 : m_parser(util::forward<P>(parser)), m_function(util::forward<F>(function)) {}
18 template<concepts::ParserContext Context,
typename Value = meta::ParserValue<Context, Parser>>
19 requires(concepts::Parser<Parser, Context>)
20 constexpr auto parse(Context& context)
const {
21 return m_parser.parse(context).transform(m_function);
29 struct TransformFunction {
30 template<concepts::DecayConstructible Parser, concepts::DecayConstructible Fun>
31 constexpr auto operator()(Parser&& parser, Fun&& function)
const {
33 util::forward<Fun>(function));
38constexpr inline auto transform = detail::TransformFunction {};
40template<concepts::DecayConstructible Parser, concepts::DecayConstructible Fun>
Definition operations.h:114
Definition code_point_parser.h:10
constexpr auto transform
Definition transform.h:38
constexpr auto parse
Definition parse.h:23
constexpr auto in_place
Definition in_place.h:8