#pragma once template struct Array { using Type = Array; static constexpr index_t nSize = NSize; index_t mData[nSize]; template __host__ __device__ Array(Xs... xs) : mData{static_cast(xs)...} { } __host__ __device__ TData operator[](index_t i) const { return mData[i]; } };