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

C++ fails on C++20 on Clang x86_64 14.0.0 #4090

Closed
emilk opened this issue Oct 30, 2023 · 3 comments · Fixed by #4098
Closed

C++ fails on C++20 on Clang x86_64 14.0.0 #4090

emilk opened this issue Oct 30, 2023 · 3 comments · Fixed by #4098
Assignees
Labels
🪳 bug Something isn't working 🌊 C++ API C/C++ API specific user-request This is a pressing issue for one of our users
Milestone

Comments

@emilk
Copy link
Member

emilk commented Oct 30, 2023

From https://discord.com/channels/1062300748202921994/1168619254120185906/1168619254120185906

Repro: https://godbolt.org/z/vbYc6PYKa

In file included from external/rerun/rerun.hpp:9:
In file included from external/rerun/rerun/archetypes.hpp:7:
In file included from external/rerun/rerun/archetypes/asset3d.hpp:9:
In file included from external/rerun/rerun/archetypes/../components/out_of_tree_transform3d.hpp:7:
In file included from external/rerun/rerun/archetypes/../components/../datatypes/transform3d.hpp:8:
In file included from external/rerun/rerun/archetypes/../components/../datatypes/translation_rotation_scale3d.hpp:8:
In file included from external/rerun/rerun/archetypes/../components/../datatypes/rotation3d.hpp:7:
external/rerun/rerun/archetypes/../components/../datatypes/quaternion.hpp:34:24: error: no matching constructor for initialization of 'rerun::datatypes::Quaternion'
                return Quaternion{x, y, z, w};
                       ^         ~~~~~~~~~~~~
external/rerun/rerun/archetypes/../components/../datatypes/quaternion.hpp:24:16: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 4 were provided
        struct Quaternion {
               ^
external/rerun/rerun/archetypes/../components/../datatypes/quaternion.hpp:24:16: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 4 were provided
external/rerun/rerun/archetypes/../components/../datatypes/quaternion.hpp:79:13: note: candidate constructor not viable: requires 0 arguments, but 4 were provided
            Quaternion() = default;
@emilk emilk added enhancement New feature or request 👀 needs triage This issue needs to be triaged by the Rerun team 🪳 bug Something isn't working 🌊 C++ API C/C++ API specific and removed enhancement New feature or request 👀 needs triage This issue needs to be triaged by the Rerun team labels Oct 30, 2023
@emilk emilk added this to the 0.10.1 milestone Oct 30, 2023
@emilk
Copy link
Member Author

emilk commented Oct 30, 2023

We should set up a full C++ compiler matrix on CI

@Wumpf
Copy link
Member

Wumpf commented Oct 30, 2023

We'll have to confirm first, but it sounds also like we have to run with C++17 and C++20 on all of these :(

EDIT: Confirmed. I can repro this issue when setting AppleClang 14 to C++20

@Wumpf Wumpf added the user-request This is a pressing issue for one of our users label Oct 30, 2023
@emilk
Copy link
Member Author

emilk commented Oct 30, 2023

I thought C++ cared about backwards compatibility 🙄

@emilk emilk self-assigned this Oct 31, 2023
emilk added a commit that referenced this issue Oct 31, 2023
### What
* Closes #4090

I tried getting these tests running on CI too, but after 2h I gave up.
Andreas has volunteered to try a bit more, so let's hold off merging
this PR until we can reproduce the problems on CI.
See #4097 if you dare

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested [demo.rerun.io](https://demo.rerun.io/pr/4098) (if
applicable)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG

- [PR Build Summary](https://build.rerun.io/pr/4098)
- [Docs
preview](https://rerun.io/preview/a69d06b8a84b78469192f341bebdfc32dc7936cc/docs)
<!--DOCS-PREVIEW-->
- [Examples
preview](https://rerun.io/preview/a69d06b8a84b78469192f341bebdfc32dc7936cc/examples)
<!--EXAMPLES-PREVIEW-->
- [Recent benchmark results](https://ref.rerun.io/dev/bench/)
- [Wasm size tracking](https://ref.rerun.io/dev/sizes/)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🪳 bug Something isn't working 🌊 C++ API C/C++ API specific user-request This is a pressing issue for one of our users
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants