20template <std::
size_t CoordinateCount>
class BlockKey {
28 constexpr explicit BlockKey(std::array<std::size_t, CoordinateCount> coordinates) : coordinates_(coordinates) {}
31 static constexpr auto size() noexcept ->
std::
size_t {
return CoordinateCount; }
36 constexpr auto coordinate(std::size_t axis)
const -> std::size_t {
return coordinates_[axis]; }
42 std::array<std::size_t, CoordinateCount> coordinates_{};
Opaque logical block-selection coordinates in boundary order.
Definition block_key.hpp:20
constexpr auto coordinate(std::size_t axis) const -> std::size_t
Return one factor coordinate.
Definition block_key.hpp:36
constexpr BlockKey()=default
Construct the all-zero coordinate.
auto operator<=>(BlockKey const &) const =default
Compare block coordinates lexicographically.
static constexpr auto size() noexcept -> std::size_t
Return the compile-time number of stored coordinates.
Definition block_key.hpp:31
constexpr BlockKey(std::array< std::size_t, CoordinateCount > coordinates)
Construct from one coordinate per selectable boundary factor.
Definition block_key.hpp:28
Definition async/async.hpp:26