• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Boost.Geometry Index
2 //
3 // R-tree node concept
4 //
5 // Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
6 //
7 // Use, modification and distribution is subject to the Boost Software License,
8 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
9 // http://www.boost.org/LICENSE_1_0.txt)
10 
11 #ifndef BOOST_GEOMETRY_INDEX_DETAIL_RTREE_NODE_CONCEPT_HPP
12 #define BOOST_GEOMETRY_INDEX_DETAIL_RTREE_NODE_CONCEPT_HPP
13 
14 namespace boost { namespace geometry { namespace index {
15 
16 namespace detail { namespace rtree {
17 
18 template <typename Value, typename Parameters, typename Box, typename Allocators, typename Tag>
19 struct node
20 {
21     BOOST_MPL_ASSERT_MSG(
22         (false),
23         NOT_IMPLEMENTED_FOR_THIS_TAG_TYPE,
24         (node));
25 };
26 
27 template <typename Value, typename Parameters, typename Box, typename Allocators, typename Tag>
28 struct internal_node
29 {
30     BOOST_MPL_ASSERT_MSG(
31         (false),
32         NOT_IMPLEMENTED_FOR_THIS_TAG_TYPE,
33         (internal_node));
34 };
35 
36 template <typename Value, typename Parameters, typename Box, typename Allocators, typename Tag>
37 struct leaf
38 {
39     BOOST_MPL_ASSERT_MSG(
40         (false),
41         NOT_IMPLEMENTED_FOR_THIS_TAG_TYPE,
42         (leaf));
43 };
44 
45 template <typename Value, typename Parameters, typename Box, typename Allocators, typename Tag, bool IsVisitableConst>
46 struct visitor
47 {
48     BOOST_MPL_ASSERT_MSG(
49         (false),
50         NOT_IMPLEMENTED_FOR_THIS_TAG_TYPE,
51         (visitor));
52 };
53 
54 template <typename Allocator, typename Value, typename Parameters, typename Box, typename Tag>
55 class allocators
56 {
57     BOOST_MPL_ASSERT_MSG(
58         (false),
59         NOT_IMPLEMENTED_FOR_THIS_TAG_TYPE,
60         (allocators));
61 };
62 
63 template <typename Allocators, typename Node>
64 struct create_node
65 {
66     BOOST_MPL_ASSERT_MSG(
67         (false),
68         NOT_IMPLEMENTED_FOR_THIS_NODE_TYPE,
69         (create_node));
70 };
71 
72 template <typename Allocators, typename Node>
73 struct destroy_node
74 {
75     BOOST_MPL_ASSERT_MSG(
76         (false),
77         NOT_IMPLEMENTED_FOR_THIS_NODE_TYPE,
78         (destroy_node));
79 };
80 
81 }} // namespace detail::rtree
82 
83 }}} // namespace boost::geometry::index
84 
85 #endif // BOOST_GEOMETRY_INDEX_DETAIL_RTREE_NODE_CONCEPT_HPP
86