STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
Classes | Macros

Type traits related to ARMI. More...

+ Collaboration diagram for ARMI Type traits:

Classes

struct  stapl::callable_traits< F >
 Callable introspection class. More...
 
struct  stapl::is_non_commutative< BinaryOperation >
 Detects if BinaryOperation is a non-commutative operation. More...
 
struct  stapl::is_p_object< T >
 Detects if T is a p_object. More...
 
struct  stapl::is_p_object_reference< T >
 Detects if T is a reference to a p_object. More...
 
struct  stapl::is_p_object_pointer< T >
 Detects if T is a pointer to a p_object. More...
 
struct  stapl::derived_types< T >
 Provide traits for RMIs with arbitrary types. More...
 

Macros

#define STAPL_POLYMORPHIC_TYPE()
 Declares the current type as a type in a polymorphic hierarchy. More...
 

Detailed Description

Type traits related to ARMI.

Macro Definition Documentation

◆ STAPL_POLYMORPHIC_TYPE

#define STAPL_POLYMORPHIC_TYPE ( )
Value:
static stapl::type_id polymorphic_type_id(void) noexcept \
{ return stapl::type_id(&polymorphic_type_id); } \
virtual stapl::type_id get_polymorphic_type_id(void) const noexcept \
{ return polymorphic_type_id(); }
std::uintptr_t type_id
Id for a type.
Definition: type_id.hpp:39

Declares the current type as a type in a polymorphic hierarchy.

Usage example:

class B
{
public:
virtual ~B();
};
class D1
: public B
{
public:
};
class D2
: public B
{
public:
}
namespace stapl {
template<>
struct derived_types<B>
{
typedef std::tuple<D1, D2> typelist_type;
};
} // namespace stapl
Warning
This macro has to be placed in the body of the class or struct after a public access specifier.