alpaka
Abstraction Library for Parallel Kernel Acceleration
alpaka::concepts::detail::ImplementationBaseType< TConcept, TDerived, std::enable_if_t< ImplementsConcept< TConcept, TDerived >::value > > Struct Template Reference

For types that inherit from "Implements<TConcept, ...>" it finds the base class (TBase) which implements the concept. More...

#include <Concepts.hpp>

Public Types

using type = decltype(implementer(std::declval< TDerived & >()))
 

Static Public Member Functions

template<typename TBase >
static auto implementer (Implements< TConcept, TBase > &) -> TBase
 

Detailed Description

template<typename TConcept, typename TDerived>
struct alpaka::concepts::detail::ImplementationBaseType< TConcept, TDerived, std::enable_if_t< ImplementsConcept< TConcept, TDerived >::value > >

For types that inherit from "Implements<TConcept, ...>" it finds the base class (TBase) which implements the concept.

Definition at line 48 of file Concepts.hpp.

Member Typedef Documentation

◆ type

template<typename TConcept , typename TDerived >
using alpaka::concepts::detail::ImplementationBaseType< TConcept, TDerived, std::enable_if_t< ImplementsConcept< TConcept, TDerived >::value > >::type = decltype(implementer(std::declval<TDerived&>()))

Definition at line 56 of file Concepts.hpp.

Member Function Documentation

◆ implementer()

template<typename TConcept , typename TDerived >
template<typename TBase >
static auto alpaka::concepts::detail::ImplementationBaseType< TConcept, TDerived, std::enable_if_t< ImplementsConcept< TConcept, TDerived >::value > >::implementer ( Implements< TConcept, TBase > &  ) -> TBase
static

The documentation for this struct was generated from the following file: