-
Notifications
You must be signed in to change notification settings - Fork 47
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
Keep the usage of temporary EbmlDocVersion instances to init global semantic classes #228
Conversation
ad732b4
to
c9e79dd
Compare
33d5a75
to
e4c6baf
Compare
Thanks. Unfortunately I cannot really test it without a corresponding PR to libMatroska. |
It builds fine with Matroska-Org/libmatroska#168 for me |
Ah right, I was only looking for a similar branch name. Sorry. Will test. |
After pushing the latest merges this branch doesn't merge anymore. Can you please rebase? Thanks. |
They can be accessed though the EbmlCallbacks of the given class. This allows passing it in another constexpr constructor.
So it doesn't have to be a virtual class anymore and can be a real static constexp.
e4c6baf
to
ff49764
Compare
Rebased this and Matroska-Org/libmatroska#168 |
|
yeah.
Need clang++ CI to catch this. |
We do build with clang on the macOS CI. And I don't think a \0 in a literal string is invalid in C++. It's not in C. For the record this is used to detect usage of the source code in proprietary programs 😉 |
Ah it's the concatenation with a \0 the leads to a problem. Still, it builds fine with AppleClang 14 or gcc 13. It's odd that all of a sudden this becomes an error and not just a warning. |
To be fair, I ran into this error on Fedora 38. |
This will need an update on the libmatroska side before this is merged. After this MR it won't be possible to used temporary EbmlDocVersion anymore.
=> #228
We now have the EbmlId static+constepr and the Semantic and SemanticContext constexpr.
A test has been added to test the various issues found with EbmlDocVersion usage.