Medusa  1.1
Coordinate Free Mehless Method implementation
traits.hpp
Go to the documentation of this file.
1 #ifndef MEDUSA_BITS_TYPES_TRAITS_HPP_
2 #define MEDUSA_BITS_TYPES_TRAITS_HPP_
3 
9 namespace mm {
10 
16 template <typename scalar_field_t>
17 struct scalar_type {
19  typedef typename scalar_field_t::Scalar type; // Reason for error: Underlying scalar type was not defined for given scalar_field_t. Please specify the required 'scalar_type' type trait. // NOLINT(*)
20 };
21 
27 template <typename vector_field_t>
28 struct vector_type {
29  static_assert(static_cast<vector_field_t*>(nullptr),
30  "Underlying scalar type was not defined for given vector_field_t. Please specify "
31  "the required 'vector_type' type trait.");
33  typedef void type;
34 };
35 
36 } // namespace mm
37 
38 #endif // MEDUSA_BITS_TYPES_TRAITS_HPP_
mm
Root namespace for the whole library.
Definition: Gaussian.hpp:14
mm::vector_type::type
void type
By default invalid underlying vector type. Must be specified for each type separately.
Definition: traits.hpp:31
mm::vector_type
Type trait for vector fields to obtain their underlying vector type.
Definition: traits.hpp:28
mm::scalar_type
Type trait for scalar fields to obtain their underlying scalar type.
Definition: traits.hpp:17
mm::scalar_type::type
scalar_field_t::Scalar type
Default scalar type.
Definition: traits.hpp:19