| 194 | argument argument::share() const { return {m_shape, m_data.share()}; } |
| 195 | |
| 196 | std::vector<argument> argument::get_sub_objects() const |
| 197 | { |
| 198 | std::vector<argument> result; |
| 199 | assert(m_shape.sub_shapes().size() == m_data.sub.size()); |
| 200 | std::transform(m_shape.sub_shapes().begin(), |
| 201 | m_shape.sub_shapes().end(), |
| 202 | m_data.sub.begin(), |
| 203 | std::back_inserter(result), |
| 204 | [](auto&& s, auto&& d) { |
| 205 | return argument{s, d}; |
| 206 | }); |
| 207 | return result; |
| 208 | } |
| 209 | |
| 210 | argument argument::element(std::size_t i) const |
| 211 | { |