Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NFC] Build Abacus in C++17 mode. #283

Merged
merged 1 commit into from
Jan 8, 2024
Merged

Conversation

hvdijk
Copy link
Collaborator

@hvdijk hvdijk commented Jan 8, 2024

Overview

[NFC] Build Abacus in C++17 mode.

Reason for change

The previous -std=c++11 for Abacus dated from back when the default mode was C++03, it was to enable new features in Abacus. The project-wide mode now is C++17, and keeping -std=c++11 for Abacus now has the opposite effect where features we can use throughout the project are not available for Abacus. This change makes it so that the whole project uses C++17.

Description of change

This is a fairly large change because C++17 makes noexcept (including attribute((nothrow))) part of the type system, requiring us to be consistent between declaration and definition, we can no longer rely on it being picked up from a previous declaration.

Anything else we should know?

If there's any other relevant information we should know that may help us in
understanding and verifying your patch, please include it here.

Checklist

  • Read and follow the project Code of Conduct.
  • Make sure the project builds successfully with your changes.
  • Run relevant testing locally to avoid regressions.
  • Run clang-format-16 (the most
    recent version available through pip) on all modified code.

The previous -std=c++11 for Abacus dated from back when the default mode
was C++03, it was to enable new features in Abacus. The project-wide mode
now is C++17, and keeping -std=c++11 for Abacus now has the opposite
effect where features we can use throughout the project are not
available for Abacus. This change makes it so that the whole project
uses C++17.

This is a fairly large change because C++17 makes noexcept (including
__attribute__((nothrow))) part of the type system, requiring us to be
consistent between declaration and definition, we can no longer rely on
it being picked up from a previous declaration.
@hvdijk hvdijk merged commit ce793d3 into uxlfoundation:main Jan 8, 2024
3 checks passed
@hvdijk hvdijk deleted the cxx17 branch January 8, 2024 13:40
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