-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexample.cpp
More file actions
38 lines (31 loc) · 938 Bytes
/
example.cpp
File metadata and controls
38 lines (31 loc) · 938 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include "multi_array.hpp"
int main() {
multi_array<double, 2, 2, 2> a = {
1, 2, 3, 4,
5, 6, 7, 8
};
for (std::size_t i = 0; i < a.size<0>(); ++i) {
for (std::size_t j = 0; j < a.size<1>(); ++j) {
for (std::size_t k = 0; k < a.size<2>(); ++k) {
std::cout << a(i, j, k) << '\n';
}
}
}
constexpr multi_array<double, 2, 2> const b = {0, 0, 0, 1};
static_assert( b(1, 1) == 1, "!" );
constexpr multi_array<double, 4, 3, 2> const c = {
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 1
};
static_assert( c(3, 2, 1) == 1, "!" );
static_assert( c(2, 1, 0) == 2, "!" );
/*
#if __cplusplus == 201402L
constexpr multi_array<double, 3> const d = { 1, 2, 3 };
static_assert( norm(d) == std::sqrt(14), "!" );
#endif
*/
}