ac889b5004
The `VecTraits` class allows templated functions, methods, and classes to treat type arguments uniformly as `Vec` types or to otherwise differentiate between scalar and vector types. This only works for types that `VecTraits` is defined for. The `VecTraits` templated class now has a default implementation that will be used for any type that does not have a `VecTraits` specialization. This removes many surprise compiler errors when using a template that, unknown to you, has `VecTraits` in its implementation. One potential issue is that if `VecTraits` gets defined for a new type, the behavior of `VecTraits` could change for that type in backward-incompatible ways. If `VecTraits` is used in a purely generic way, this should not be an issue. However, if assumptions were made about the components and length, this could cause problems. Fixes #589 |
||
---|---|---|
.. | ||
.gitattributes | ||
ArrayPortalBasic.h | ||
ArrayPortalDummy.h | ||
ArrayPortalHelpers.h | ||
ArrayPortalUniformPointCoordinates.h | ||
ArrayPortalValueReference.h | ||
Assume.h | ||
CMakeLists.txt | ||
Configure.h.in | ||
ConfigureFor32.h | ||
ConfigureFor64.h | ||
ConnectivityStructuredInternals.h | ||
DecayHelpers.h | ||
ExportMacros.h | ||
FunctionInterface.h | ||
FunctionInterfaceDetailPost.h | ||
FunctionInterfaceDetailPost.h.in | ||
FunctionInterfaceDetailPre.h | ||
FunctionInterfaceDetailPre.h.in | ||
IndexTag.h | ||
IndicesExtrude.h | ||
Instantiations.h | ||
Invocation.h | ||
Meta.h | ||
Unreachable.h | ||
VariantImpl.h | ||
VariantImplDetail.h | ||
VariantImplDetail.h.in | ||
VecOperators.h | ||
VecOperators.h.in | ||
Windows.h |