#include "tensorstore/index_space/index_transform.h"
template <ArrayOriginKind OriginKind = offset_origin,
          DimensionIndex InputRank,
          DimensionIndex OutputRank,
          ContainerKind CKind,
          typename Array>
  
requires IsArray<Array> && (OutputRank == Array::static_rank)
Result<SharedArray<std::remove_const_t<typename Array::Element>,
                   InputRank,
                   OriginKind>>
tensorstore::MakeCopy(
    
const Arrayarray,
    
const IndexTransform<InputRank, OutputRank, CKind>& transform,
    
IterationConstraints constraints = skip_repeated_elements);

Equivalent to TransformArray, but always returns a newly allocated array with a non-const element type.