24 auto edges = get_edges();
26 edges.target.set_patchdatas({});
29 edges.original.get_const_refs().for_each(
31 if (pdat.get_layout_ptr().get() != layout_source.get()) {
32 throw shambase::make_except_with_loc<std::invalid_argument>(
"layout mismatch");
36 if (edges.target.get_layout_ptr().get() != layout_target.get()) {
43 patch::PatchDataLayer pdat_new(layout_target);
45 pdat_new.for_each_field_any([&](auto &field) {
46 using T = typename std::remove_reference<decltype(field)>::type::Field_type;
47 field.insert(pdat.get_field<T>(field.get_name()));
50 pdat_new.check_field_obj_cnt_match();