exprTraits.H File Reference
Include dependency graph for exprTraits.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  exprTypeTraits< Type >
 Simple type identifiers for polymorphic expression values. The definitions are similar to std::integral_constant in that they provide value, value_type (and name). More...
 
struct  exprTypeTraits< bool >
 bool expression traits More...
 
struct  exprTypeTraits< ::Foam::label >
 label expression traits More...
 
struct  exprTypeTraits< ::Foam::scalar >
 scalar expression traits More...
 
struct  exprTypeTraits< ::Foam::vector >
 vector expression traits More...
 
struct  exprTypeTraits< ::Foam::tensor >
 tensor expression traits More...
 
struct  exprTypeTraits< ::Foam::sphericalTensor >
 sphericalTensor expression traits More...
 
struct  exprTypeTraits< ::Foam::symmTensor >
 symmTensor expression traits More...
 
struct  nameOp< expressions::valueTypeCode >
 A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID. More...
 

Namespaces

 Foam::expressions
 A namespace for expression-related classes/traits etc.
 
 Foam::expressions::Detail
 A namespace for implementation details related to expressions.
 
 Foam
 Namespace for OpenFOAM.
 

Macros

#define defineExprTypeTraits(Type, Name, Rank, NumCmpts)
 

Enumerations

enum  valueTypeCode : unsigned char {
  NONE = 0, INVALID, type_bool, type_label,
  type_scalar, type_vector, type_sphericalTensor, type_symmTensor,
  type_tensor
}
 An enumeration of known and expected expression value types. More...
 

Functions

valueTypeCode valueTypeCodeOf (const word &dataTypeName, const expressions::valueTypeCode deflt=expressions::valueTypeCode::INVALID)
 From string to valueTypeCode (if any) More...
 
::Foam::direction nComponents (const expressions::valueTypeCode) noexcept
 The number of components associated with given valueTypeCode. More...
 
::Foam::direction rank (const expressions::valueTypeCode) noexcept
 The vector-space rank associated with given valueTypeCode. More...
 
word name (const expressions::valueTypeCode typeCode)
 A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID. More...
 

Detailed Description

Original source file exprTraits.H

Definition in file exprTraits.H.

Macro Definition Documentation

◆ defineExprTypeTraits

#define defineExprTypeTraits (   Type,
  Name,
  Rank,
  NumCmpts 
)
Value:
\
template<> \
struct exprTypeTraits<Type> \
{ \
typedef Type value_type; \
static constexpr const char* const name = #Name ; \
static constexpr \
::Foam::expressions::valueTypeCode::type_##Name ; \
};
uint8_t direction
Definition: direction.H:46
::Foam::direction nComponents(const expressions::valueTypeCode) noexcept
The number of components associated with given valueTypeCode.
Definition: exprTraits.C:40
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
Definition: exprTraits.C:127
valueTypeCode
An enumeration of known and expected expression value types.
Definition: exprTraits.H:81
::Foam::direction rank(const expressions::valueTypeCode) noexcept
The vector-space rank associated with given valueTypeCode.
Definition: exprTraits.C:70

Definition at line 161 of file exprTraits.H.