Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 9 additions & 15 deletions sycl/include/sycl/ext/oneapi/properties/property.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,19 @@
// `sycl::ext::oneapi::experimental::detail::PropKind` representing the new
// property. Increment
// `sycl::ext::oneapi::experimental::detail::PropKind::PropKindSize`
// 2. Define property key class with `value_t` that must be `property_value`
// with the first template argument being the property class itself. The
// name of the key class must be the property name suffixed by `_key`, i.e.
// for a property `foo` the class should be named `foo_key`.
// 2. Define property key class inherited from
// `detail::compile_time_property_key` with `value_t` that must be
// `property_value` with the first template argument being the property
// class itself. The name of the key class must be the property name
// suffixed by `_key`, i.e. for a property `foo` the class should be named
// `foo_key`.
// 3. Add an `inline constexpr` variable in the same namespace as the property
// key. The variable should have the same type as `value_t` of the property
// class, e.g. for a property `foo`, there should be a definition
// `inline constexpr foo_key::value_t foo`.
// 4. Specialize `sycl::ext::oneapi::experimental::is_property_key` and
// `sycl::ext::oneapi::experimental::is_property_key_of` for the property
// key class.
// 5. Specialize `sycl::ext::oneapi::experimental::detail::PropertyToKind` for
// the new property key class. The specialization should have a `Kind`
// member with the value equal to the enumerator added in 1.
// 6. Specialize
// `sycl::ext::oneapi::experimental::detail::IsCompileTimeProperty` for the
// new property key class. This specialization should derive from
// `std::true_type`.
// 7. If the property needs an LLVM IR attribute, specialize
// 4. Specialize `sycl::ext::oneapi::experimental::is_property_key_of` for the
// property key class.
// 5. If the property needs an LLVM IR attribute, specialize
// `sycl::ext::oneapi::experimental::detail::PropertyMetaInfo` for the new
// `value_t` of the property key class. The specialization must have a
// `static constexpr const char *name` member with a value equal to the
Expand Down
Loading