Skip to content

C++20 compatibility #70

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

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

churley-qcom
Copy link

Summary

This PR updates SystemC-Components to support compilation with C++20, in addition to existing support for C++11, C++14, and C++17. The main change is a minimal, two-line update in scv_introspection.h to ensure compatibility with newer C++ standards.

Motivation

  • C++20 support: Modern toolchains and projects are increasingly adopting C++20. Ensuring SystemC-Components builds and runs correctly with C++20 broadens its usability and future-proofs the codebase.
  • Maintain backward compatibility: The change preserves support for C++11, C++14, and C++17.

Testing

Dependency Updates

Code Change

  • File: scv_introspection.h
  • Change: Resolve C++20 parsing ambiguity with nested template names.

Impact

  • No API changes.
  • No behavioral changes.
  • No new dependencies.

@churley-qcom
Copy link
Author

@eyck, having a copy of CCI code in the SCC repo is not ideal. Can it be made a submodule instead?

@eyck
Copy link
Contributor

eyck commented Jul 3, 2025

Actually no since this copy contains modifications to make it working with Cadence Xcelium. Those changes will not be accepted to the Accellera report.
If you use provide CCI e.g. via a package manager the copy in SCC will not be used.

@eyck
Copy link
Contributor

eyck commented Jul 3, 2025

Now as the lwtr4sc PR is merged could you please change the submodule link back to the lwtr4sc repo?

@churley-qcom
Copy link
Author

Actually no since this copy contains modifications to make it working with Cadence Xcelium. Those changes will not be accepted to the Accellera report. If you use provide CCI e.g. via a package manager the copy in SCC will not be used.

Ok thanks, that makes sense.

@churley-qcom churley-qcom force-pushed the cxx20-compatibility branch from e93e985 to 40160f1 Compare July 3, 2025 21:09
@churley-qcom
Copy link
Author

Now as the lwtr4sc PR is merged could you please change the submodule link back to the lwtr4sc repo?

DONE and it's passing in the CI on my fork: https://github.com/churley-qcom/SystemC-Components/actions/runs/16060595888

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