alpaka
Abstraction Library for Parallel Kernel Acceleration
Interface.hpp File Reference
#include <type_traits>

Go to the source code of this file.

Classes

struct  alpaka::interface::detail::ImplementationBaseType< TInterface, TDerived, std::enable_if_t< ImplementsInterface< TInterface, TDerived >::value > >
 For types that inherit from "Implements<TInterface, ...>" it finds the base class (TBase) which implements the interface. More...
 
struct  alpaka::interface::detail::ImplementationBaseType< TInterface, TDerived, std::enable_if_t<!ImplementsInterface< TInterface, TDerived >::value > >
 Base case for types that do not inherit from "Implements<TInterface, ...>" is the type itself. More...
 
struct  alpaka::interface::Implements< TInterface, TBase >
 Tag used in class inheritance hierarchies that describes that a specific interface (TInterface) is implemented by the given base class (TBase). More...
 
struct  alpaka::interface::ImplementsInterface< TInterface, TDerived >
 Checks whether the interface is implemented by the given class. More...
 

Namespaces

 alpaka
 The alpaka accelerator library.
 
 alpaka::interface
 
 alpaka::interface::detail
 

Typedefs

template<typename TInterface , typename TDerived >
using alpaka::interface::ImplementationBase = typename detail::ImplementationBaseType< TInterface, TDerived >::type
 Returns the type that implements the given interface in the inheritance hierarchy. More...