| 608 | } |
| 609 | |
| 610 | shape shape::to_dynamic() const |
| 611 | { |
| 612 | if(not sub_shapes().empty()) |
| 613 | { |
| 614 | std::vector<shape> subs; |
| 615 | std::transform(sub_shapes().cbegin(), |
| 616 | sub_shapes().cend(), |
| 617 | std::back_inserter(subs), |
| 618 | [](auto s) { return s.to_dynamic(); }); |
| 619 | return shape(subs); |
| 620 | } |
| 621 | if(this->dynamic()) |
| 622 | { |
| 623 | return *this; |
| 624 | } |
| 625 | return {type(), lens(), lens(), {}}; |
| 626 | } |
| 627 | |
| 628 | shape shape::to_static(std::size_t x) const |
| 629 | { |