23 template<
typename TPlatform>
25 =
requires {
requires interface::ImplementsInterface<ConceptPlatform, std::decay_t<TPlatform>>::value; };
29 template<
typename TPlatform>
30 [[deprecated(
"use the alpaka::concepts::Platform instead.")]]
inline constexpr bool isPlatform
37 template<
typename T,
typename TSfinae =
void>
40 template<
typename TPlatform>
43 std::enable_if_t<interface::ImplementsInterface<ConceptPlatform, TPlatform>::value>>
49 template<
typename T,
typename TSfinae =
void>
53 template<
typename T,
typename TSfinae =
void>
62 template<
typename TPlatform>
69 template<
typename TPlatform>
76 template<
typename TPlatform>
79 std::vector<Dev<TPlatform>> devs;
82 devs.reserve(devCount);
83 for(std::size_t devIdx(0); devIdx < devCount; ++devIdx)
93 template<
typename TPlatform,
typename TProperty>
97 std::enable_if_t<interface::ImplementsInterface<ConceptPlatform, TPlatform>::value>>
typename detail::ImplementationBaseType< TInterface, TDerived >::type ImplementationBase
Returns the type that implements the given interface in the inheritance hierarchy.
The alpaka accelerator library.
ALPAKA_FN_HOST auto getDevCount(TPlatform const &platform)
constexpr bool isPlatform
True if TPlatform is a platform, i.e. if it implements the ConceptPlatform concept.
typename trait::DevType< T >::type Dev
The device type trait alias template to remove the ::type.
ALPAKA_FN_HOST auto getDevByIdx(TPlatform const &platform, std::size_t const &devIdx) -> Dev< TPlatform >
typename trait::PlatformType< T >::type Platform
The platform type trait alias template to remove the ::type.
ALPAKA_FN_HOST auto getDevs(TPlatform const &platform) -> std::vector< Dev< TPlatform > >
The device count get trait.
Queue for an accelerator.