38class serialize_impl<T, std::enable_if_t<is_valarray_v<std::remove_pointer_t<T>>>>
40 void operator()(T& obj,
serializer& ser, ser_opt_t UNUSED(options))
42 const auto& objPtr = get_ptr(obj);
44 switch ( ser.mode() ) {
45 case serializer::SIZER:
46 size = objPtr->size();
50 case serializer::PACK:
51 size = objPtr->size();
55 case serializer::UNPACK:
57 if constexpr ( std::is_pointer_v<T> )
58 obj =
new std::remove_pointer_t<T>(size);
64 size = objPtr->size();
65 ser.mapper().map_hierarchy_start(
67 for (
size_t i = 0; i < size; ++i )
68 SST_SER_NAME((*objPtr)[i], std::to_string(i).c_str());
69 ser.mapper().map_hierarchy_end();
72 ser.raw(&(*objPtr)[0], size *
sizeof((*objPtr)[0]));
75 SST_FRIEND_SERIALIZE();