289 Accessor_IPDataVecInLocAsm accessor_ip_data_vec_in_loc_asm,
290 Accessor_CurrentLevelFromIPDataVecElement
291 accessor_current_level_from_ip_data_vec_element)
293 return {std::forward<Accessor_IPDataVecInLocAsm>(
294 accessor_ip_data_vec_in_loc_asm),
295 std::forward<Accessor_CurrentLevelFromIPDataVecElement>(
296 accessor_current_level_from_ip_data_vec_element)};
326 Callback
const& callback, ReflectionDataTuple
const& reflection_data,
327 Accessor_IPDataVecInLocAsm
const& accessor_ip_data_vec_in_loc_asm,
328 Accessor_CurrentLevelFromIPDataVecElement
const&
329 accessor_current_level_from_ip_data_vec_element)
331 boost::mp11::tuple_for_each(
333 [&accessor_ip_data_vec_in_loc_asm,
334 &accessor_current_level_from_ip_data_vec_element,
335 &callback]<
typename Class,
typename Accessor>(
338 using MemberRef = std::invoke_result_t<Accessor, Class const&>;
339 using Member = std::remove_cvref_t<MemberRef>;
341 auto accessor_member_from_ip_data_vec_element =
342 [accessor_next_level = refl_data.
accessor,
343 accessor_current_level_from_ip_data_vec_element](
344 auto const& ip_data_vec_element) -> Member
const&
346 return accessor_next_level(
347 accessor_current_level_from_ip_data_vec_element(
348 ip_data_vec_element));
353 forEachReflectedFlattenedIPDataAccessor<Dim>(
355 accessor_ip_data_vec_in_loc_asm,
356 accessor_member_from_ip_data_vec_element);
361 "The current member is not reflectable, so we "
362 "expect it to be raw data.");
366 callback(refl_data.
name, num_comp,
367 getFlattenedIPDataFromLocAsm<Dim>(
368 accessor_ip_data_vec_in_loc_asm,
369 accessor_member_from_ip_data_vec_element));