DPC++ Runtime
Runtime libraries for oneAPI DPC++
annotated_arg.hpp File Reference
Include dependency graph for annotated_arg.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sycl::is_device_copyable< ext::oneapi::experimental::annotated_arg< T, PropertyList > >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::HasSubscriptOperator< T >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_ann_arg_impl< T >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_ann_arg_impl< annotated_arg< T, P > >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_ann_arg_impl< const annotated_arg< T, P > >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::GetUnderlyingTImpl< annotated_arg< T, P > >
 
class  sycl::_V1::ext::oneapi::experimental::annotated_arg< T, PropertyListT >
 

Namespaces

 sycl
 
 sycl::_V1
 
 sycl::_V1::ext
 
 sycl::_V1::ext::oneapi
 
 sycl::_V1::ext::oneapi::experimental
 
 sycl::_V1::ext::oneapi::experimental::detail
 

Macros

#define PROPAGATE_OP(op)
 
#define PROPAGATE_OP(op)
 

Typedefs

template<class T >
using sycl::_V1::ext::oneapi::experimental::detail::GetUnderlyingT = typename GetUnderlyingTImpl< std::remove_cv_t< std::remove_reference_t< T > >>::type
 
using sycl::_V1::ext::oneapi::experimental::global_pointer_t = typename decorated_global_ptr< T >::pointer
 
using sycl::_V1::ext::oneapi::experimental::UnderlyingT = T
 

Functions

template<typename T , typename... Args>
 sycl::_V1::ext::oneapi::experimental::annotated_arg (T, Args...) -> annotated_arg< T, typename detail::DeducedProperties< Args... >::type >
 
template<typename T , typename old , typename... ArgT>
 sycl::_V1::ext::oneapi::experimental::annotated_arg (annotated_arg< T, old >, properties< std::tuple< ArgT... >>) -> annotated_arg< T, detail::merged_properties_t< old, detail::properties_t< ArgT... >>>
 
template<typename T , typename... Props>
class __SYCL_SPECIAL_CLASS sycl::_V1::ext::oneapi::experimental::__SYCL_TYPE (annotated_arg) annotated_arg< T *
 
 sycl::_V1::ext::oneapi::experimental::annotated_arg (const annotated_arg &)=default
 
annotated_arg & sycl::_V1::ext::oneapi::experimental::operator= (annotated_arg &)=default
 
 sycl::_V1::ext::oneapi::experimental::annotated_arg (T *_ptr, const property_list_t &PropList=properties{}) noexcept
 
template<typename... PropertyValueTs>
 sycl::_V1::ext::oneapi::experimental::annotated_arg (T *_ptr, const PropertyValueTs &...props) noexcept
 
template<typename T2 , typename PropertyList2 >
 sycl::_V1::ext::oneapi::experimental::annotated_arg (const annotated_arg< T2, PropertyList2 > &other) noexcept
 
template<typename T2 , typename PropertyListU , typename PropertyListV >
 sycl::_V1::ext::oneapi::experimental::annotated_arg (const annotated_arg< T2, PropertyListU > &other, const PropertyListV &proplist) noexcept
 
 sycl::_V1::ext::oneapi::experimental::operator T* () noexcept
 
T & sycl::_V1::ext::oneapi::experimental::operator[] (std::ptrdiff_t idx) const noexcept
 
T * sycl::_V1::ext::oneapi::experimental::operator-> () const noexcept
 
template<typename PropertyT >
static constexpr bool sycl::_V1::ext::oneapi::experimental::has_property ()
 
template<typename PropertyT >
static constexpr auto sycl::_V1::ext::oneapi::experimental::get_property ()
 
 sycl::_V1::ext::oneapi::experimental::annotated_arg (const T &_obj, const property_list_t &PropList=properties{}) noexcept
 
template<typename... PropertyValueTs>
 sycl::_V1::ext::oneapi::experimental::annotated_arg (const T &_obj, PropertyValueTs... props) noexcept
 
 sycl::_V1::ext::oneapi::experimental::operator T () noexcept
 

Variables

template<class T >
constexpr bool sycl::_V1::ext::oneapi::experimental::detail::is_ann_arg_v
 
T * sycl::_V1::ext::oneapi::experimental::obj
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::is_valid_property_list
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::contains_valid_properties
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::hasValidFPGAProperties
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::hasConduitAndRegisterMapProperties
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::is_device_copyable = is_device_copyable_v<T>
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::has_buffer_location
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::has_awidth = has_property<awidth_key>()
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::has_dwidth = has_property<dwidth_key>()
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::has_latency = has_property<latency_key>()
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::has_read_write_mode
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::has_maxburst = has_property<maxburst_key>()
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::has_wait_request = has_property<wait_request_key>()
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::has_alignment = has_property<alignment_key>()
 
static constexpr bool sycl::_V1::ext::oneapi::experimental::has_usm_kind = has_property<usm_kind_key>()
 

Macro Definition Documentation

◆ PROPAGATE_OP [1/2]

#define PROPAGATE_OP (   op)
Value:
template <class O> friend auto operator op(O &&a, const annotated_arg &b) { \
if constexpr (!detail::is_ann_arg_v<O>) \
return std::forward<O>(a) op b.operator T(); \
else \
return a.operator detail::GetUnderlyingT<O>() op b.operator T(); \
} \
template <class O, typename = std::enable_if_t<!detail::is_ann_arg_v<O>>> \
friend auto operator op(const annotated_arg &a, O &&b) \
-> decltype(std::declval<T>() op std::forward<O>(b)) { \
return a.operator T() op std::forward<O>(b); \
}
annotated_arg(const T &_obj, PropertyValueTs... props) noexcept
auto autodecltype(a) b

Definition at line 372 of file annotated_arg.hpp.

◆ PROPAGATE_OP [2/2]

#define PROPAGATE_OP (   op)
Value:
template <typename O = T> \
auto operator op() const -> decltype(op std::declval<O>()) { \
return op this->operator O(); \
}

Definition at line 372 of file annotated_arg.hpp.