11 template<
class T,
size_t N>
class array {
16 template<
typename... Ts>
array(Ts ... args)
19 T values[
sizeof...(args) + 1] = {
static_cast<T
>(args)...};
20 for (
size_t i = 0; i <
sizeof...(args) && i < N; i++) {
21 _values[i] = values[i];
26 for (
size_t i = 0; i < N && i < l.
length; i++) {
34 for (
size_t i = 0; i < N; i++) {
35 _values[i] = a._values[i];
42 for (
size_t i = 0; i < N; i++) {
43 _values[i] = a._values[i];
49 constexpr
size_t size()
const {
return N; }
50 constexpr
bool empty()
const {
return size() == 0; }
52 T& operator[](
size_t n) {
54 Platform::errorOrDefault(RuntimeError::OutOfRange,
"array index out of range",
false );
60 const T& operator[](
size_t n)
const {
62 Platform::errorOrDefault(RuntimeError::OutOfRange,
"array index out of range",
false );
71 for (
size_t i = 0; i < N; i++) {
79 T _values[N ? N : 1] = {};
84 template<
typename T,
size_t FIXED>
85 template<
typename TA,
size_t NA>
89 , _allocatedLength(FIXED)
91 allocate(length,
false);
92 for (
size_t i = 0; i < NA; i++) {
100 #endif // #ifndef _RNBO_TUPLE_H_