#include "tile-iterator.hpp" #include "tile.hpp" namespace Magnum::Examples { template void basic_tile_iterator::swap(basic_tile_iterator& other) { using std::swap; swap(ptr, other.ptr); swap(pos, other.pos); } template template typename std::tuple_element>::type basic_tile_iterator::get() { if constexpr(N == 0) return pos == TILE_COUNT ? ptr[0] : ptr[pos]; else if constexpr(N == 1) return pos; else if constexpr(N == 2) return local_coords{pos}; else return std::void_t>(); } template typename std::tuple_element<0, basic_tile_iterator>::type basic_tile_iterator::get<0>(); template typename std::tuple_element<1, basic_tile_iterator>::type basic_tile_iterator::get<1>(); template typename std::tuple_element<2, basic_tile_iterator>::type basic_tile_iterator::get<2>(); template typename std::tuple_element<0, basic_tile_iterator>::type basic_tile_iterator::get<0>(); template typename std::tuple_element<1, basic_tile_iterator>::type basic_tile_iterator::get<1>(); template typename std::tuple_element<2, basic_tile_iterator>::type basic_tile_iterator::get<2>(); template class basic_tile_iterator; template class basic_tile_iterator; } // namespace Magnum::Examples