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