37#ifndef expressions_exprTraits_H
38#define expressions_exprTraits_H
105 static constexpr const char*
const name =
"";
107 ::Foam::expressions::valueTypeCode
value =
112#undef defineExprTypeTraits
113#define defineExprTypeTraits(Type, Name) \
115 struct exprTypeTraits<Type> \
117 typedef Type value_type; \
118 static constexpr const char* const name = #Name; \
120 ::Foam::expressions::valueTypeCode value = \
121 ::Foam::expressions::valueTypeCode::type_##Name; \
134#undef defineExprTypeTraits
144struct nameOp<expressions::valueTypeCode>
A class for handling words, derived from Foam::string.
#define defineExprTypeTraits(Type, Name)
valueTypeCode
An enumeration of known and expected expression value types.
@ type_sphericalTensor
Type is 'sphericalTensor'.
@ type_symmTensor
Type is 'symmTensor'.
@ type_scalar
Type is 'scalar'.
@ type_label
Type is 'label'.
@ type_vector
Type is 'vector'.
@ NONE
No type, or default initialized type.
@ type_bool
Type is 'bool'.
@ INVALID
Invalid/unknown/error type.
@ type_tensor
Type is 'tensor'.
valueTypeCode valueTypeCodeOf(const word &dataTypeName)
From string to valueTypeCode (if any)
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
Simple type identifiers for polymorphic expression values.
static constexpr const char *const name
static constexpr::Foam::expressions::valueTypeCode value
word operator()(const expressions::valueTypeCode typeCode) const
Extract name (as a word) from an object, typically using its name() method.
word operator()(const T &obj) const