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

Does not compile on certain versions of gcc and clang #34

Open
pfeatherstone opened this issue May 29, 2022 · 1 comment
Open

Does not compile on certain versions of gcc and clang #34

pfeatherstone opened this issue May 29, 2022 · 1 comment

Comments

@pfeatherstone
Copy link
Contributor

This is the example program provided on the main page which showcases better inlining than vanilla inheritance.
https://godbolt.org/z/9h9qf87n5
It fails to compile with certain versions of clang, e.g. 12, 11, 10, 9 and 8. And it fails to compile with certain version of gcc.
I have no idea how to solve this.
I think it has something to do with when templates are "evaluated". The library checks for type completeness and uses requires__ a lot, I imagine to ensure the type is complete at the point where the poly is compiled. Something like that. Maybe for some compilers requires__ isn't enough, so the type is incomplete, so it can't determine the number of methods registered via te::call and mappings::set.
This could either be a compiler bug or the library is abusing a compiler mechanism that isn't guaranteed to work.

@pfeatherstone
Copy link
Contributor Author

@krzysztof-jusiak @kris-jusiak Do you have an update on how to solve this ?

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

No branches or pull requests

1 participant