2017-08-06 19:39:11 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <cstdint>
|
|
|
|
|
#include <ostream>
|
|
|
|
|
|
2017-08-10 15:24:23 -07:00
|
|
|
template <uint32_t D>
|
|
|
|
|
struct Coord : public std::array<uint32_t, D> {};
|
2017-08-06 19:39:11 +00:00
|
|
|
|
2017-08-10 15:24:23 -07:00
|
|
|
template <uint32_t D>
|
|
|
|
|
std::ostream& operator<<(std::ostream& os, const Coord<D>& coord) {
|
|
|
|
|
os << "(";
|
|
|
|
|
for (uint32_t d = 0; d < D; ++d) {
|
|
|
|
|
os << coord.at(d);
|
|
|
|
|
if (d < D - 1) {
|
|
|
|
|
os << ", ";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return os << ")";
|
|
|
|
|
}
|