12 #include <type_traits>
15 inline namespace _V1 {
30 template <
class Obj> decltype(Obj::impl)
getSyclObjImpl(
const Obj &SyclObject) {
31 assert(SyclObject.impl &&
"every constructor should create an impl");
32 return SyclObject.impl;
39 typename std::add_pointer_t<
typename decltype(T::impl)::element_type>
41 return SyclObject.impl.get();
std::add_pointer_t< typename decltype(T::impl)::element_type > getRawSyclObjImpl(const T &SyclObject)
decltype(Obj::impl) getSyclObjImpl(const Obj &SyclObject)
T createSyclObjFromImpl(decltype(T::impl) ImplObj)