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 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
Testing.h | ||
UnitTestArrayPortalBasic.cxx | ||
UnitTestArrayPortalValueReference.cxx | ||
UnitTestAtomic.cxx | ||
UnitTestBinaryOperators.cxx | ||
UnitTestBinaryPredicates.cxx | ||
UnitTestBounds.cxx | ||
UnitTestCellShape.cxx | ||
UnitTestConfigureFor32.cxx | ||
UnitTestConfigureFor64.cxx | ||
UnitTestDeprecated.cxx | ||
UnitTestExceptions.cxx | ||
UnitTestFunctionInterface.cxx | ||
UnitTestGeometry.cxx | ||
UnitTestHash.cxx | ||
UnitTestList.cxx | ||
UnitTestLowerBound.cxx | ||
UnitTestMath.cxx | ||
UnitTestMatrix.cxx | ||
UnitTestNewtonsMethod.cxx | ||
UnitTestNoAssert.cxx | ||
UnitTestPair.cxx | ||
UnitTestRange.cxx | ||
UnitTestTesting.cxx | ||
UnitTestTransform3D.cxx | ||
UnitTestTuple.cxx | ||
UnitTestTypeList.cxx | ||
UnitTestTypes.cxx | ||
UnitTestTypeTraits.cxx | ||
UnitTestUnaryPredicates.cxx | ||
UnitTestUpperBound.cxx | ||
UnitTestVecAxisAlignedPointCoordinates.cxx | ||
UnitTestVecFlat.cxx | ||
UnitTestVecFromPortal.cxx | ||
UnitTestVecFromPortalPermute.cxx | ||
UnitTestVectorAnalysis.cxx | ||
UnitTestVecTraits.cxx | ||
UnitTestVecVariable.cxx | ||
VecTraitsTests.h |