Skip to content

Fix std::make_format_args rvalue binding error with GCC 13#7369

Merged
DennisOSRM merged 2 commits intocopilot/replace-boost-format-with-libfmtfrom
copilot/format-fix-requirements
Feb 19, 2026
Merged

Fix std::make_format_args rvalue binding error with GCC 13#7369
DennisOSRM merged 2 commits intocopilot/replace-boost-format-with-libfmtfrom
copilot/format-fix-requirements

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 19, 2026

std::make_format_args in C++20 (GCC 13) requires non-const lvalue references (_Args&...), but passing std::forward<Args>(args)... could produce rvalues, causing a hard compile error.

Change

  • include/util/format.hpp: Drop std::forward in the vformat call — named parameters are already lvalues inside the function body, so forwarding is both unnecessary and harmful here.
// Before
return std::vformat(fmt.str, std::make_format_args(std::forward<Args>(args)...));

// After
return std::vformat(fmt.str, std::make_format_args(args...));

The Args&&... forwarding-reference signature is retained so the function continues to accept both lvalues and rvalues at the call site.

Original prompt

Reference: https://github.com/Project-OSRM/osrm-backend/actions/runs/22189641709/job/64173441697#step:14:1

Make sure the fix is formatted as required.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix formatting issues in required fix Fix std::make_format_args rvalue binding error with GCC 13 Feb 19, 2026
Copilot AI requested a review from DennisOSRM February 19, 2026 16:17
@DennisOSRM DennisOSRM marked this pull request as ready for review February 19, 2026 16:21
@DennisOSRM DennisOSRM merged commit 7b3b897 into copilot/replace-boost-format-with-libfmt Feb 19, 2026
@DennisOSRM DennisOSRM deleted the copilot/format-fix-requirements branch February 19, 2026 16:21
DennisOSRM added a commit that referenced this pull request Feb 21, 2026
* Initial plan

* Replace boost::format with libfmt across the codebase

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Remove unnecessary util/log.hpp include from shared_monitor.hpp

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Fix code formatting as reported by CI

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Fix npm audit security vulnerability in tar package

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Add missing <memory> include to multi_level_partition.hpp

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Add missing <memory> include to compressed_edge_container.hpp

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Add missing <vector> include to io_config.hpp

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Add missing <string> and <cstring> includes to storage headers

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Add missing includes: util/format.hpp and <vector>

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Fix runtime format string handling for C++20 std::format compatibility

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* [WIP] Fix build errors in project (#7367)

* Fix clang-format-18 formatting in include/util/format.hpp (#7368)

* Fix std::make_format_args rvalue binding error with GCC 13 (#7369)

* Fix missing `<unistd.h>` include for macOS in io-benchmark (#7370)

* Move `#ifdef OSRM_HAS_STD_FORMAT` from call sites into `format.hpp` (#7371)

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>
Co-authored-by: Dennis Luxen <info@project-osrm.org>
MarcelloPerathoner pushed a commit to MarcelloPerathoner/osrm-backend that referenced this pull request Feb 24, 2026
* Initial plan

* Replace boost::format with libfmt across the codebase

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Remove unnecessary util/log.hpp include from shared_monitor.hpp

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Fix code formatting as reported by CI

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Fix npm audit security vulnerability in tar package

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Add missing <memory> include to multi_level_partition.hpp

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Add missing <memory> include to compressed_edge_container.hpp

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Add missing <vector> include to io_config.hpp

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Add missing <string> and <cstring> includes to storage headers

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Add missing includes: util/format.hpp and <vector>

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* Fix runtime format string handling for C++20 std::format compatibility

Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>

* [WIP] Fix build errors in project (Project-OSRM#7367)

* Fix clang-format-18 formatting in include/util/format.hpp (Project-OSRM#7368)

* Fix std::make_format_args rvalue binding error with GCC 13 (Project-OSRM#7369)

* Fix missing `<unistd.h>` include for macOS in io-benchmark (Project-OSRM#7370)

* Move `#ifdef OSRM_HAS_STD_FORMAT` from call sites into `format.hpp` (Project-OSRM#7371)

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: DennisOSRM <1067895+DennisOSRM@users.noreply.github.com>
Co-authored-by: Dennis Luxen <info@project-osrm.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants