19
19
#include < sycl/ext/oneapi/properties/property_value.hpp>
20
20
#include < sycl/pointers.hpp>
21
21
22
- #include < sycl/detail/boost/mp11/algorithm.hpp>
23
-
24
22
#include < cstddef>
25
23
#include < string_view>
26
24
#include < tuple>
@@ -56,16 +54,10 @@ template <typename... Ts>
56
54
using contains_alignment =
57
55
detail::ContainsProperty<alignment_key, std::tuple<Ts...>>;
58
56
59
- // properties filter
60
- template <typename property_list, template <class ...> typename filter>
61
- using PropertiesFilter =
62
- sycl::detail::boost::mp11::mp_copy_if<property_list, filter>;
63
-
64
57
// filter properties that are applied on annotations
65
- template <typename ... Props>
66
- using annotation_filter =
67
- properties<PropertiesFilter<detail::properties_type_list<Props...>,
68
- propagateToPtrAnnotation>>;
58
+ template <typename PropertyListTy>
59
+ using annotation_filter = decltype (filter_properties<propagateToPtrAnnotation>(
60
+ std::declval<PropertyListTy>()));
69
61
} // namespace detail
70
62
71
63
template <typename I, typename P> struct annotationHelper {};
@@ -110,8 +102,8 @@ class annotated_ref<T, detail::properties_t<Props...>> {
110
102
// implicit conversion with annotaion
111
103
operator T () const {
112
104
#ifdef __SYCL_DEVICE_ONLY__
113
- return annotationHelper<T, detail::annotation_filter<Props...>>:: load (
114
- m_Ptr);
105
+ return annotationHelper<
106
+ T, detail::annotation_filter< property_list_t >>:: load ( m_Ptr);
115
107
#else
116
108
return *m_Ptr;
117
109
#endif
@@ -121,8 +113,8 @@ class annotated_ref<T, detail::properties_t<Props...>> {
121
113
template <class O , typename = std::enable_if_t <!detail::is_ann_ref_v<O>>>
122
114
T operator =(O &&Obj) const {
123
115
#ifdef __SYCL_DEVICE_ONLY__
124
- return annotationHelper<T, detail::annotation_filter<Props...>>:: store (
125
- m_Ptr, Obj);
116
+ return annotationHelper<
117
+ T, detail::annotation_filter< property_list_t >>:: store ( m_Ptr, Obj);
126
118
#else
127
119
return *m_Ptr = std::forward<O>(Obj);
128
120
#endif
@@ -387,8 +379,8 @@ __SYCL_TYPE(annotated_ptr) annotated_ptr<T, detail::properties_t<Props...>> {
387
379
388
380
T *get () const noexcept {
389
381
#ifdef __SYCL_DEVICE_ONLY__
390
- return annotationHelper<T, detail::annotation_filter<Props...>>:: annotate (
391
- m_Ptr);
382
+ return annotationHelper<
383
+ T, detail::annotation_filter< property_list_t >>:: annotate ( m_Ptr);
392
384
#else
393
385
return m_Ptr;
394
386
#endif
0 commit comments