Я использую boost::multi_array
, и когда мне нужно проверить, находится ли данная координата в пределах границ, я делаю это:
bool MapData::IsWithinBounds(TileArray3D::index x, TileArray3D::index y, TileArray3D::index z) const {
return (x >= 0 and x < GetWidth()) and
(y >= 0 and y < GetHeight()) and
(z >= 0 and z < GetDepth());
}
, где TileArray3D
определяется как:
typedef boost::multi_array<TileID, 3> TileArray3D;
и TileID
- это:
BOOST_STRONG_TYPEDEF(int, TileID);
Подпись GetWidth / Высота / глубина:
TileArray3D::size_type GetWidth() const;
Но TileArray3D::size_type
не подписано, а TileArray3D::index
-подписан.Я использую эти типы неправильно?Или есть способ обойти это?Должен ли я просто привести index
к size_type
?или могут возникнуть проблемы?
Заранее спасибо, ell.