FleCSI User API Version: 2.3.1
 
Loading...
Searching...
No Matches
specialization< C, D > Struct Template Reference

CRTP base for specializations. More...

Classes

struct  mpi_coloring
 Constructs a coloring in an MPI task. More...
 

Public Types

template<privilege... Priv>
using accessor
 The topology accessor to use as a parameter to receive a slot.
 
using base
 The core topology base type, which can provide specialization utilities.
 
using coloring
 The coloring type.
 
using slot
 The slot type for declaring topology instances.
 
- Public Types inherited from specialization_base
template<auto V, class T >
using from
 A connectivity specification.
 
template<auto V, class T >
using entity
 A special-entities specification.
 
template<auto... V>
using has
 A list of enumerators for which to store data.
 
template<auto... V>
using to
 A list of index spaces to use as output.
 
template<class... TT>
using list
 Container.
 
using index_space
 The index space type.
 
using index_spaces
 The set of index spaces, wrapped in has.
 
template<class B >
using interface
 The topology interface type.
 

Defaults

May be overridden by policy.

template<auto S>
static constexpr PrivilegeCount privilege_count
 The number of privileges to use for an accessor.
 
static constexpr auto default_space ()
 The default index space to use when one is optional.
 
static void initialize (slot &s, coloring const &)
 Specialization-specific initialization.
 

Additional Inherited Members

- Public Member Functions inherited from specialization_base
 specialization_base ()=delete
 Specializations cannot be constructed.
 

Detailed Description

template<template< class > class C, class D>
struct flecsi::topo::specialization< C, D >

CRTP base for specializations.

Template Parameters
Ccore topology
Dderived topology type

Member Typedef Documentation

◆ base

template<template< class > class C, class D >
using base

The core topology base type, which can provide specialization utilities.

◆ coloring

template<template< class > class C, class D >
using coloring

The coloring type.

◆ slot

template<template< class > class C, class D >
using slot

The slot type for declaring topology instances.

◆ accessor

template<template< class > class C, class D >
template<privilege... Priv>
using accessor

The topology accessor to use as a parameter to receive a slot.

Template Parameters
Privthe appropriate number of privileges

Member Function Documentation

◆ default_space()

template<template< class > class C, class D >
static constexpr auto default_space ( )
staticconstexpr

The default index space to use when one is optional.

This implementation is ill-formed if there is more than one defined.

Returns
index_space

◆ initialize()

template<template< class > class C, class D >
static void initialize ( slot & s,
coloring const &  )
static

Specialization-specific initialization.

Called by topology_slot::allocate; specializations may specify additional parameters to be supplied there.

This implementation does nothing.

Parameters
sthe slot in which the core topology has just been constructed

Member Data Documentation

◆ privilege_count

template<template< class > class C, class D >
template<auto S>
PrivilegeCount privilege_count
staticconstexpr

The number of privileges to use for an accessor.

This implementation produces 1.

Template Parameters
Sindex space