#include "tensorstore/strided_layout.h"
template <typename Indices>
  
requires IsCompatibleFullIndexVector<static_rank, Indices>
Index tensorstore::StridedLayout<Rank, OriginKind, CKind>::operator()(
    
const Indicesindices) const;
template <size_t N>
  
requires (RankConstraint::EqualOrUnspecified(static_rank, N))
Index tensorstore::StridedLayout<Rank, OriginKind, CKind>::operator()(
    
const Index (&indices)[N]) const;

Returns the byte offset corresponding to a list of rank() indices into the layout.

Unlike for operator[], the number of indices must equal rank().

Parameters:
const Indices &indices
const Index (&indices)[N]

A list of rank() indices. span(indices) must be valid, and the resulting span::value_type must be convertible to Index. May be specified as a braced list, e.g. layout({1, 2, 3}).

Pre:

0 <= span(indices)[i] < shape()[i] for 0 <= i < rank()

Checks:

span(indices).size() == rank()

Returns:

sum(byte_strides[i] * indices[i] for 0 <= i < rank())