12template <
typename TData, index_t NSize>
20 __host__ __device__
static constexpr index_t Size() {
return NSize; }
22 __host__ __device__
constexpr const TData&
At(
index_t i)
const {
return mData[i]; }
33 static_assert(T::Size() ==
Size(),
"wrong! size not the same");
39 __host__ __device__
constexpr const TData*
begin()
const {
return &
mData[0]; }
40 __host__ __device__
constexpr const TData*
end()
const {
return &
mData[NSize]; }
41 __host__ __device__
constexpr TData*
begin() {
return &
mData[0]; }
42 __host__ __device__
constexpr TData*
end() {
return &
mData[NSize]; }
46template <
typename TData>
52 __host__ __device__
static constexpr index_t Size() {
return 0; }
55template <
typename X,
typename... Xs>
56__host__ __device__
constexpr auto make_array(X&& x, Xs&&... xs)
59 return Array<data_type,
sizeof...(Xs) + 1>{ck::forward<X>(x), ck::forward<Xs>(xs)...};
int32_t index_t
Definition ck.hpp:299
remove_cv_t< remove_reference_t< T > > remove_cvref_t
Definition type.hpp:297
__host__ __device__ constexpr auto make_array()
Definition utility/array.hpp:64
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition pointer.h:1517
Array type
Definition utility/array.hpp:49
TData data_type
Definition utility/array.hpp:50
__host__ static __device__ constexpr index_t Size()
Definition utility/array.hpp:52
Definition utility/array.hpp:14
__host__ __device__ constexpr auto operator=(const T &a)
Definition utility/array.hpp:31
__host__ __device__ constexpr const TData & At(index_t i) const
Definition utility/array.hpp:22
__host__ static __device__ constexpr index_t Size()
Definition utility/array.hpp:20
__host__ __device__ constexpr TData & At(index_t i)
Definition utility/array.hpp:24
__host__ __device__ constexpr TData & operator()(index_t i)
Definition utility/array.hpp:28
__host__ __device__ constexpr const TData & operator[](index_t i) const
Definition utility/array.hpp:26
Array type
Definition utility/array.hpp:15
index_t mData[NSize]
Definition utility/array.hpp:18
__host__ __device__ constexpr const TData * end() const
Definition utility/array.hpp:40
__host__ __device__ constexpr const TData * begin() const
Definition utility/array.hpp:39
__host__ __device__ constexpr TData * begin()
Definition utility/array.hpp:41
__host__ __device__ constexpr TData * end()
Definition utility/array.hpp:42
TData data_type
Definition utility/array.hpp:16
Definition functional2.hpp:33