1#ifndef __DUNE_ACFEM_EXPRESSIONS_TYPETRAITS_HH__
2#define __DUNE_ACFEM_EXPRESSIONS_TYPETRAITS_HH__
9#include <dune/common/fvector.hh>
10#include <dune/common/fmatrix.hh>
12#include "../common/types.hh"
32 template<
class F,
class =
void>
38 struct IsScalar<T,
std::enable_if_t<!IsDecay<T>::value> >
48 std::enable_if_t<(std::is_convertible<F*, typename FieldTraits<F>::field_type*>::value
50 (std::numeric_limits<typename FieldTraits<F>::real_type>::is_iec559
52 std::numeric_limits<typename FieldTraits<F>::real_type>::is_integer))> >
56 template<
class FV,
class SFINAE =
void>
62 struct IsFieldVector<FV,
std::enable_if_t<!IsDecay<FV>::value> >
63 : IsFieldVector<std::decay_t<FV> >
66 template<
class F,
int dim>
67 struct IsFieldVector<FieldVector<F, dim> >
72 struct IsScalar<FieldVector<F, 1> >
81 template<
class F,
int Rows,
int Cols>
82 struct IsFieldMatrix<FieldMatrix<F, Rows, Cols> >
93 template<
class T,
class SFINAE =
void>
95 : Dune::FieldTraits<T>
BoolConstant< false > FalseType
Alias for std::false_type.
Definition: types.hh:110
BoolConstant< true > TrueType
Alias for std::true_type.
Definition: types.hh:107
Helper class for specializing Dune::FieldTraits.
Definition: typetraits.hh:96
TrueType if I is an integral type.
Definition: typetraits.hh:29
std::true_type if F is an "elementary" scalar.
Definition: typetraits.hh:35