22#include <boost/serialization/split_free.hpp>
32template <std::
size_t I,
class Archive,
class Variant>
33void load_impl(
Archive &
ar, std::size_t index, Variant &
obj) {
35 std::variant_alternative_t<I, Variant>
opt{};
38 }
else if constexpr (
I + 1 < std::variant_size_v<Variant>) {
47 std::visit([&](
const auto &value) {
ar << value; },
obj);
52 std::size_t index = 0;
54 if (index >= std::variant_size_v<std::variant<Ts...>>) {
55 throw std::domain_error(
"std::variant cannot be reloaded (type mismatch)");
57 detail::load_impl<0>(
ar, index,
obj);
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
void serialize(Archive &ar, std::tuple< T... > &pack, unsigned int const)
Serialize std::tuple.
void load(Archive &ar, GpuParticleData::GpuParticle &p, unsigned const)
void save(Archive &ar, GpuParticleData::GpuParticle const &p, unsigned const)