Skip to content

Commit 4706f57

Browse files
Andreas Buhrtzlaine
authored andcommitted
Avoid creation of temp_result object in seq_parser
The object is never used, only its type is used.
1 parent 5625f03 commit 4706f57

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

include/boost/parser/parser.hpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4295,10 +4295,10 @@ namespace boost { namespace parser {
42954295
{
42964296
Iter first = first_;
42974297

4298-
auto temp_result =
4299-
make_temp_result(first, last, context, skip, flags, success);
4298+
using temp_result_t =
4299+
decltype(make_temp_result(first, last, context, skip, flags, success));
43004300

4301-
std::decay_t<decltype(parser::get(temp_result, llong<0>{}))>
4301+
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<0>{}))>
43024302
retval{};
43034303

43044304
[[maybe_unused]] auto _ = detail::scoped_trace(
@@ -4310,9 +4310,9 @@ namespace boost { namespace parser {
43104310
: flags,
43114311
retval);
43124312

4313-
std::decay_t<decltype(parser::get(temp_result, llong<1>{}))>
4313+
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<1>{}))>
43144314
indices;
4315-
std::decay_t<decltype(parser::get(temp_result, llong<2>{}))>
4315+
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<2>{}))>
43164316
merged;
43174317
call_impl(
43184318
first,
@@ -4363,13 +4363,13 @@ namespace boost { namespace parser {
43634363

43644364
Iter first = first_;
43654365

4366-
auto temp_result =
4367-
make_temp_result(first, last, context, skip, flags, success);
4366+
using temp_result_t =
4367+
decltype(make_temp_result(first, last, context, skip, flags, success));
43684368
using temp_result_attr_t =
4369-
std::decay_t<decltype(parser::get(temp_result, llong<0>{}))>;
4370-
std::decay_t<decltype(parser::get(temp_result, llong<1>{}))>
4369+
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<0>{}))>;
4370+
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<1>{}))>
43714371
indices;
4372-
std::decay_t<decltype(parser::get(temp_result, llong<2>{}))> merged;
4372+
std::decay_t<decltype(parser::get(std::declval<temp_result_t>(), llong<2>{}))> merged;
43734373

43744374
auto max_ = [](auto result, auto x) {
43754375
if constexpr (decltype(result)::value < decltype(x)::value) {

0 commit comments

Comments
 (0)