13 #ifndef SPATIAL_EXCEPT_HPP 
   14 #define SPATIAL_EXCEPT_HPP 
   17 #include "../exception.hpp" 
   39           std::stringstream out;
 
   40           out << rank << 
" is an odd value";
 
   52       if (dimension >= rank)
 
   54           std::stringstream out;
 
   55           out << dimension << 
" is out of range";
 
   66     template<
typename Node>
 
   69       if (node == 0 || node->left == node)
 
   70         throw invalid_node(
"node points to null or header node");
 
   78     template<
typename Node>
 
   81       if (node == 0 || node->left == node)
 
   94     template <
typename Ptr1, 
typename Ptr2>
 
   99           (
"iterator is invalid or does not belong to the container used");
 
  108     template<
typename Tp>
 
  127     template<
typename Tp>
 
  129     (
const Tp& container,
 
  134         if (!container.key_comp()(dim, lower, upper))
 
  136             (
"lower is greater or equal to upper over one dimension at least");
 
  148     template<
typename Tp>
 
  150     (
const Tp& container,
 
  166     template<
typename Tp>
 
  168     (
const Tp& container,
 
  173         if (container.key_comp()(dim, upper, lower))
 
  175             (
"upper is stricly less than lower over one dimension at least");
 
  188     template <
typename Tp>
 
  190     (
const Tp& container,
 
  196         if (container.key_comp()(i + rank, box, i, box))
 
  198             (
"box does not follow specified layout or coordinates are invalid");
 
  201     template <
typename Tp>
 
  203     (
const Tp& container,
 
  209         if (container.key_comp()(i, box, i + rank, box))
 
  211             (
"box does not follow specified layout or coordinates are invalid");
 
  214     template <
typename Tp>
 
  216     (
const Tp& container,
 
  221         if (container.key_comp()(i + 1, box, i, box))
 
  223             (
"box does not follow specified layout or coordinates are invalid");
 
  226     template <
typename Tp>
 
  228     (
const Tp& container,
 
  233         if (container.key_comp()(i, box, i + 1, box))
 
  235             (
"box does not follow specified layout or coordinates are invalid");
 
  241 #endif // SPATIAL_EXCEPT_HPP 
Thrown to report that an invalid node was passed as an argument. 
void check_node(Node *node)
Checks that the node's pointer given as an argument to a function is not null or does not point to a ...
Thrown to report that an empty container was passed as an argument, while the function does not accep...
void check_bounds(const Tp &container, const typename container_traits< Tp >::key_type &lower, const typename container_traits< Tp >::key_type &upper)
Checks if all coordinates of lower are strictly less than these of higher along the same dimensions...
void check_open_bounds(const Tp &container, const typename container_traits< Tp >::key_type &lower, const typename container_traits< Tp >::key_type &upper)
Checks if all coordinates of lower are strictly less than these of higher along the same dimensions...
Represents a coordinate layout for the box. 
Thrown to report that an invalid rank was passed as an argument. 
void check_dimension(dimension_type rank, dimension_type dimension)
Checks that dimension is not greater or equal to rank. 
Thrown to report that an invalid range bound has been given as argument. 
Represents a coordinate layout for the box. 
void check_even_rank(dimension_type rank)
Checks that rank is not null and that it is a multiple of 2. 
Tp::key_type key_type
The type representing the key managed by the container. 
void check_box(const Tp &container, const typename container_traits< Tp >::key_type &box, llhh_layout_tag)
Checks that all coordinates of a box are matching with the layout specified or else, raise an invalid_box exception. 
Thrown to report that an invalid dimension was passed as an argument. 
void check_rank(dimension_type rank)
Checks that rank is not null. 
Thrown to report that a box has incorrect coordinates with regards to its layout. ...
void check_iterator(Ptr1 ptr1, Ptr2 ptr2)
Checks if two iterators are of equal values, if not raises the invalid_iterator exception. 
Thrown to report that an invalid iterator was passed as an argument. 
std::size_t dimension_type
Defines the type for the dimension as being a size. 
void check_empty_container(const Tp &cont)
Checks that the container given as an argument to a function is not empty. 
Represents a coordinate layout for the box. 
The main namespace used in the library. 
Thrown to report that an odd rank value was passed as a argument. 
Represents a coordinate layout for the box. 
void check_closed_bounds(const Tp &container, const typename container_traits< Tp >::key_type &lower, const typename container_traits< Tp >::key_type &upper)
Checks if all coordinates of lower are less or equal to these of higher along the same dimensions...
void check_node_iterator(Node *node)
Checks that the node pointed to by an iterator and given as an argument to a function is not null or ...