Skip to content
  • Mark OLESEN's avatar
    ENH: add VectorSpace trait tests and evaluations · 97a42df7
    Mark OLESEN authored
    - is_vectorspace :
      test existence and non-zero value of the Type 'rank' static variable
    
    - pTraits_rank :
      value of 'rank' static variable (if it exists), 0 otherwise
    
    - pTraits_nComponents :
      value of 'nComponents' static variable (if it exists), 1 otherwise
    
    - pTraits_has_zero :
      test for pTraits<T>::zero member, which probably means that it also
      has one, min, max members as well
    
    Note that these traits are usable with any classes. For example,
    
      - is_vectorspace<std::string>::value  ==> false
      - pTraits_nComponents<std::string>::value  ==> 1
      - pTraits<std::string>::nComponents  ==> fails to compile
    
      Thus also allows testing pTraits_rank<...>::value with items
      for which pTraits<...>::rank fails to compile.
    
      Eg, cyclicAMIPolyPatch::interpolate called by FaceCellWave with a
      wallPoint.
    
         pTraits<wallPoint>::rank ==> fails to compile
         is_vectorspace<wallPoint>::value ==> false
    
    GIT: relocate ListLoopM.H to src/OpenFOAM/fields/Fields (future isolation)
    97a42df7