File tree 1 file changed +7
-4
lines changed
rfcs/proposed/iterators_pass_directly_customization
1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -71,10 +71,13 @@ oneDPL will define the "passed directly" definitions of its custom iterators as
71
71
* ` permutation_iterator ` is "passed directly" if both its source iterator and its index map are "passed directly"
72
72
73
73
If a "passed directly" customization point is defined for a type, any derived type will also match the existing
74
- ADL customization point function if a more specific one is not defined. This can be a feature, as multiple derived types
75
- can inherit "passed directly" traits from their parent. However, users must be aware that this is the case. A user could
76
- incorrectly assume that the lack of a customization point for the derived class would mean the new type will use the
77
- default overload of ` is_passed_directly_in_onedpl_device_policies ` (and return ` std::false_type ` ).
74
+ customization point function unless explicitly overridden. Users can override this behavior by implementing a more
75
+ specific ADL customization point function for the derived class. This is particularly useful in cases of multiple
76
+ inheritance or ambiguous ADL matches, where the default behavior may not align with the intended design.
77
+
78
+ Users must be aware of this behavior. A user might incorrectly assume that the absence of a customization point
79
+ specifically for the derived class would cause the derived iterator type to use the default overload of
80
+ ` is_passed_directly_in_onedpl_device_policies ` (and return ` std::false_type ` ).
78
81
79
82
### Implementation Details
80
83
You can’t perform that action at this time.
0 commit comments