| 285 | |
| 286 | template <typename F> |
| 287 | array create_transformed_array(array arr, F f) |
| 288 | { |
| 289 | if constexpr (std::is_same_v<std::invoke_result_t<F, array>, array>) { |
| 290 | return array(dynamic_transformed_array<F>(std::move(arr), std::move(f))); |
| 291 | } else { |
| 292 | return array(transformed_array<F>(std::move(arr), std::move(f))); |
| 293 | } |
| 294 | } |
| 295 | |
| 296 | template <typename F> |
| 297 | array create_transformed_array(array a1, array a2, F f) |