1 #ifndef TAG_INC_ARRAY_H
2 #define TAG_INC_ARRAY_H
8 template<
class C=int,
int I=-1>
class array;
10 template<>
struct array<int, -1>
16 template<
class C,
int I>
class array
29 operator C*() {
return data; }
30 operator const C*()
const {
return data; }
56 array_filler<D, E, T_list<D,E>::elements -1>::fill(data, l);
62 array_filler<D, E, T_list<D,E>::elements -1>::fill(data, l.next);
70 template<
class D,
class E,
int i>
struct array_filler
75 array_filler<typename E::val_type, typename E::next_type, i-1>::fill(data, l.
next);
79 template<
class D,
class E>
struct array_filler<D,E,-1>
81 static void fill(C*,
const T_list<D, E>&){}
84 template<
class D,
int i>
struct sizetoolong
86 typedef typename D::Error_initializer_list_is_too_long dummy;
89 template<
class D>
struct sizetoolong<D, 0>
94 template<
class D,
int i>
struct sizetooshort
96 typedef typename D::Error_initializer_list_is_too_short dummy;
99 template<
class D>
struct sizetooshort<D, 0>