#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]; } };