vtk-m/docs/changelog/vectraits-for-all.md
Kenneth Moreland ac889b5004 Implement VecTraits class for all types
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
2023-03-16 12:59:38 -06:00

904 B

Implemented VecTraits class for all types

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.