2
0
mirror of https://github.com/boostorg/parser.git synced 2026-02-21 03:12:08 +00:00

Avoid creation of temp_result object in seq_parser

The object is never used, only its type is used.
This commit is contained in:
Andreas Buhr
2026-02-03 10:39:53 +01:00
committed by Zach Laine
parent 5625f0345e
commit 4706f57c8e

View File

@@ -4295,10 +4295,10 @@ namespace boost { namespace parser {
{
Iter first = first_;
auto temp_result =
make_temp_result(first, last, context, skip, flags, success);
using temp_result_t =
decltype(make_temp_result(first, last, context, skip, flags, success));
std::decay_t<decltype(parser::get(temp_result, llong<0>{}))>
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<0>{}))>
retval{};
[[maybe_unused]] auto _ = detail::scoped_trace(
@@ -4310,9 +4310,9 @@ namespace boost { namespace parser {
: flags,
retval);
std::decay_t<decltype(parser::get(temp_result, llong<1>{}))>
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<1>{}))>
indices;
std::decay_t<decltype(parser::get(temp_result, llong<2>{}))>
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<2>{}))>
merged;
call_impl(
first,
@@ -4363,13 +4363,13 @@ namespace boost { namespace parser {
Iter first = first_;
auto temp_result =
make_temp_result(first, last, context, skip, flags, success);
using temp_result_t =
decltype(make_temp_result(first, last, context, skip, flags, success));
using temp_result_attr_t =
std::decay_t<decltype(parser::get(temp_result, llong<0>{}))>;
std::decay_t<decltype(parser::get(temp_result, llong<1>{}))>
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<0>{}))>;
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<1>{}))>
indices;
std::decay_t<decltype(parser::get(temp_result, llong<2>{}))> merged;
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<2>{}))> merged;
auto max_ = [](auto result, auto x) {
if constexpr (decltype(result)::value < decltype(x)::value) {