FleCSI User API Version: 2.3.1
 
Loading...
Searching...
No Matches
field< T, L > Struct Template Reference

Helper type to define and access fields. More...

Classes

struct  definition
 A field registration. More...
 

Public Types

template<privilege... PP>
using accessor
 The accessor to use as a parameter to receive this sort of field.
 
template<privilege... PP>
using mutator
 The mutator to use as a parameter for this sort of field (usable only for certain layouts).
 
template<class R >
using reduction
 Reduction accessor corresponding to this field type.
 

Public Member Functions

 field ()=delete
 Fields cannot be constructed. Use definition instead.
 

Detailed Description

template<class T, data::layout L = data::dense>
struct flecsi::field< T, L >

Helper type to define and access fields.

Template Parameters
Tfield value type:
  • if any non-MPI tasks use the field, T must be a trivially copyable type with no pointers or references
  • if any instance of the field is resized, T must be trivially relocatable; this weaker property is not formally recognized by the language, but common implementations of std::vector and std::unique_ptr qualify
Ldata layout

Member Typedef Documentation

◆ accessor

template<class T , data::layout L = data::dense>
template<privilege... PP>
using accessor

The accessor to use as a parameter to receive this sort of field.

Template Parameters
PPthe appropriate number of privilege values, interpreted as
  • exclusive
  • shared, ghost
  • exclusive, shared, ghost

◆ mutator

template<class T , data::layout L = data::dense>
template<privilege... PP>
using mutator

The mutator to use as a parameter for this sort of field (usable only for certain layouts).

Template Parameters
PPas for accessor

◆ reduction

template<class T , data::layout L = data::dense>
template<class R >
using reduction

Reduction accessor corresponding to this field type.

This is only implemented for a Dense layout.

See also
data::reduction_accessor

Constructor & Destructor Documentation

◆ field()

template<class T , data::layout L = data::dense>
field ( )
delete

Fields cannot be constructed. Use definition instead.