You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following are not explicitly specified for DPC++ execution policies:
copy constructor
move constructor
copy assignment
move assignment
Is their behavior considered to be default?
For example. What if an implementation decide to mark operator= as deleted, will it be considered as a deviation from the Spec?
The text was updated successfully, but these errors were encountered:
From my perspective if we don't explicitly list the default members the behavior is as they are there with = default marker. The argument for that is the destructor. I believe that we didn't specify the destructor almost anywhere. But it's valid operation since we can create the objects on the stack (e.g. device_policy) and this is the desired scenario.
Even if we don't specify the layout explicitly I think we should consider prohibiting those default members as the breaking change. Consider one more example: Imagine that the class has all default members specified as = default without specifying the layout. I think user would assume that they can be called. Then, on the next version of the product the implementation has been changed and contains the reference in the layout which breaks the ability to call copy-assignment. To me it also looks like breaking change.
The following are not explicitly specified for DPC++ execution policies:
Is their behavior considered to be default?
For example. What if an implementation decide to mark operator= as deleted, will it be considered as a deviation from the Spec?
The text was updated successfully, but these errors were encountered: