SPROUT_CONSTEXPR result_type call_2( typename Expr::args_type const&, context_type const& ctx, Result2 const& res ) const { return res.success() ? result_type( true, res.current(), sprout::weed::attr_cnv::bitwise_or<attr1_type, attr2_type>(res.attr()), context_type(ctx, res.current()) ) : result_type(false, ctx.begin(), attribute_type(), ctx) ; }
SPROUT_CONSTEXPR result_type call_2( typename Expr::args_type const&, context_type const& ctx, Attr1 const& attr, Result2 const& res ) const { return res.success() ? result_type( true, res.current(), sprout::weed::attr_cnv::shift_left(attr, res.attr()), context_type(ctx, res.current()) ) : result_type(false, ctx.begin(), attribute_type(), ctx) ; }