Add support for C++20 modules #463
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I made a similar pull request here on RtMidi, and am just applying the same edits here.
This pull request adds support for C++20 modules, as well as puts all symbols in the inlined namespace
rt::audio(it is broken into nested namespace to emphasise the relation with RtMidi, which also shares namespacert). This change does not break any existing code, but allows symbols to be optionally accessed through the namespacert::audioin addition to the global namespace. The module itself is imported usingimport rt.audio;and is enabled with the build macroRTAUDIO_BUILD_MODULES. EnablingRTAUDIO_USE_NAMESPACEwill make namespaces mandatory in the module.Introducing modules to the project will not break any code, but is a benefit to users of C++20 and later who may wish to consume the library using modules rather than headers.