75 explicit pTraits(
const Base& obj)
93template<
class T,
class =
void>
94struct pTraits_rank : std::integral_constant<Foam::direction, 0> {};
102 std::void_t<decltype(pTraits<std::remove_cv_t<T>>::rank)>
105 std::integral_constant<Foam::direction, pTraits<std::remove_cv_t<T>>::rank>
110template<
class T,
class =
void>
121 std::void_t<decltype(pTraits<std::remove_cv_t<T>>::zero)>
129template<
class T,
class =
void>
138 std::void_t<decltype(std::remove_cv_t<T>::nComponents)>
141 std::integral_constant
144 pTraits<std::remove_cv_t<T>>::nComponents
150template<
class T,
class =
void>
158 std::void_t<decltype(pTraits<std::remove_cv_t<T>>::zero)>
170template<
class T,
class =
void>
179 std::void_t<decltype(std::remove_cv_t<T>::rank)>
182 std::bool_constant<std::remove_cv_t<T>::rank != 0>
188template<
class T,
class =
void>
200 decltype(std::remove_cv_t<T>::rank),
201 decltype(std::remove_cv_t<T>::nComponents)
207 (std::remove_cv_t<T>::rank != 0)
208 && (std::remove_cv_t<T>::nComponents > 1)
229template<
class T,
class =
void>
230struct is_range : std::false_type {};
240 decltype(std::declval<T>().begin()),
241 decltype(std::declval<T>().end())
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
A traits class, which is primarily used for primitives and vector-space.
pTraits(const Base &obj)
Copy construct from base class.
pTraits(Istream &is)
Construct from Istream.
Represents 0/1 range or concept. Used for tagged dispatch or clamping.
Direction is an 8-bit unsigned integer type used to represent Cartesian directions,...
constexpr bool is_vectorspace_v
The is_vectorspace value of Type.
constexpr bool is_rotational_vectorspace_v
The is_rotational_vectorspace value of Type.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Test for containers with begin/end range iterators.
Test for VectorSpace and multiple components (eg, not sphericalTensor) which means it is not rotation...
Test for VectorSpace : default is false.
typename pTraits< std::remove_cv_t< T > >::cmptType type
The underlying component data type: default is pass-through.
Test for pTraits zero : default is false.
The vector-space number of components: default is 1.
The vector-space rank: default is 0.