-
Notifications
You must be signed in to change notification settings - Fork 67
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
What does "default copy constructible" mean? #210
Comments
Yes I think you're right, so the original intent of this wording was to require the types to use the implicit default constructor, move/copy constructors and destructor, so as I understand this would translate to |
As I understand it After looking some more into this I'm actually a bit confused: Section 4.5.3 says special member functions should be defaulted. However, it also lists all of them in table 9 and says that classes must either follow the rule of zero or the rule of five. The latter implies that there can also be explicitly defined special member functions, which means they are no longer defaulted and classes are no longer trivially-copyable. I'm pretty sure at least |
I propose that we define these as trivially copyable in https://gitlab.khronos.org/sycl/Specification/-/issues/564 |
Linked to internal github issue on marray improvements |
leaning towards changing it to trivially_# |
Section 4.3.3 Common by-value semantics currently states that types such as
id
andrange
must be "default copy constructible", "default destructible", "default move constructible" and "default move assignable". What does that mean? As far as I can tell, these terms are not used anywhere on cppreference.I assume the intent was to say trivially constructible/destructible/moveable. This would already be true for most implementations and types (hipSYCL does not fulfill all requirements for
item
,h_item
andnd_range
).cc @AerialMantis I think you came up with this wording originally in 2e3b42c.
The text was updated successfully, but these errors were encountered: