vtk-m/vtkm/internal
Kenneth Moreland 4a7aae86f9 Allow Variant to be trivial
Although `vtkm::internal::Variant` respected the trivially copyable
attribute of the types it contains, it was never totally trivial (i.e.
`std::is_trivial<Variant<...>>` was never true). The reason was that
`Variant` was initializing its `Index` parameter to signify that it was
not initialized. However, the fact that `Index` was initialized meant
that it was not trivially constructed.

Now, `Variant` type checks its types to see if they are all trivially
constructible. If so, it makes itself trivially constructible.

This means that `Index` may or may not be valid if `Variant` is
constructed without an argument. This in turn means that the result of
`Variant::IsValid` becomes undefined. That should be OK in practice.
`Index` will "point" to an uninitialized object, but that object is
trivially constructed anyway. However, that could cause problems if
developers used `IsValid` to determine if something is selected.
2020-09-22 16:22:37 -06:00
..
testing Allow Variant to be trivial 2020-09-22 16:22:37 -06:00
.gitattributes clang-format: apply to the entire tree 2017-05-25 07:51:37 -04:00
ArrayPortalBasic.h Replace basic ArrayHandle implementation to use Buffers 2020-06-25 14:02:26 -06:00
ArrayPortalHelpers.h Properly handle Get(Id3) in ArrayPortalCheck 2020-03-18 10:51:20 -06:00
ArrayPortalUniformPointCoordinates.h Update VTK-m code to use new Vec aliases 2019-07-31 12:55:40 -06:00
ArrayPortalValueReference.h Use noexcept instead of throw() as it was deprecated in c++11 2020-01-13 10:05:35 -05:00
ArrayPortalVirtual.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
Assume.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
brigand.hpp Fix brigand for CUDA 10.2. 2019-12-18 15:51:59 -05:00
CMakeLists.txt Optionally remove all use of ArrayHandleVirtual 2020-09-04 22:52:45 -06:00
Configure.h.in Optionally remove all use of ArrayHandleVirtual 2020-09-04 22:52:45 -06:00
ConfigureFor32.h conslidate the license statement 2019-04-17 10:57:13 -06:00
ConfigureFor64.h conslidate the license statement 2019-04-17 10:57:13 -06:00
ConnectivityStructuredInternals.h Refactor topology mappings to clarify meaning. 2019-08-06 11:27:26 -04:00
DecayHelpers.h Make Tuple class 2020-03-16 17:12:16 -06:00
ExportMacros.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
FunctionInterface.h Suppress bad deprecation warnings in MSVC 2020-07-14 16:25:04 -06:00
FunctionInterfaceDetailPost.h Simplify FunctionInterface 2019-12-02 09:33:35 -05:00
FunctionInterfaceDetailPost.h.in Simplify FunctionInterface 2019-12-02 09:33:35 -05:00
FunctionInterfaceDetailPre.h Another round of simplifications to FunctionInterface 2019-12-04 14:02:44 -05:00
FunctionInterfaceDetailPre.h.in Another round of simplifications to FunctionInterface 2019-12-04 14:02:44 -05:00
IndexTag.h conslidate the license statement 2019-04-17 10:57:13 -06:00
IndicesExtrude.h Update VTK-m code to use new Vec aliases 2019-07-31 12:55:40 -06:00
Invocation.h Correct warnings found with CUDA 10.2 + gcc 4.8.5 2020-02-26 15:16:35 -05:00
Unreachable.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
Variant.h Allow Variant to be trivial 2020-09-22 16:22:37 -06:00
VariantDetail.h Sprinkle noexcept goodness on Variant and ArrayPortalMultiplexer 2019-07-25 15:25:29 -06:00
VariantDetail.h.in Sprinkle noexcept goodness on Variant and ArrayPortalMultiplexer 2019-07-25 15:25:29 -06:00
VecOperators.h vtkm::Vec: added unrolled arithmetic operators overload 2020-09-03 16:10:15 -04:00
VecOperators.h.in vtkm::Vec: added unrolled arithmetic operators overload 2020-09-03 16:10:15 -04:00
Windows.h conslidate the license statement 2019-04-17 10:57:13 -06:00