concept.hpp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // Boost.Geometry Index
  2. //
  3. // R-tree node concept
  4. //
  5. // Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
  6. //
  7. // This file was modified by Oracle on 2020.
  8. // Modifications copyright (c) 2020 Oracle and/or its affiliates.
  9. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
  10. //
  11. // Use, modification and distribution is subject to the Boost Software License,
  12. // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  13. // http://www.boost.org/LICENSE_1_0.txt)
  14. #ifndef BOOST_GEOMETRY_INDEX_DETAIL_RTREE_NODE_CONCEPT_HPP
  15. #define BOOST_GEOMETRY_INDEX_DETAIL_RTREE_NODE_CONCEPT_HPP
  16. #include <boost/geometry/core/static_assert.hpp>
  17. namespace boost { namespace geometry { namespace index {
  18. namespace detail { namespace rtree {
  19. template <typename Value, typename Parameters, typename Box, typename Allocators, typename Tag>
  20. struct node
  21. {
  22. BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
  23. "Not implemented for this Tag type.",
  24. Value, Parameters, Box, Allocators, Tag);
  25. };
  26. template <typename Value, typename Parameters, typename Box, typename Allocators, typename Tag>
  27. struct internal_node
  28. {
  29. BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
  30. "Not implemented for this Tag type.",
  31. Value, Parameters, Box, Allocators, Tag);
  32. };
  33. template <typename Value, typename Parameters, typename Box, typename Allocators, typename Tag>
  34. struct leaf
  35. {
  36. BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
  37. "Not implemented for this Tag type.",
  38. Value, Parameters, Box, Allocators, Tag);
  39. };
  40. template <typename Value, typename Parameters, typename Box, typename Allocators, typename Tag, bool IsVisitableConst>
  41. struct visitor
  42. {
  43. BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
  44. "Not implemented for this Tag type.",
  45. Value, Parameters, Box, Allocators, Tag);
  46. };
  47. template <typename Allocator, typename Value, typename Parameters, typename Box, typename Tag>
  48. class allocators
  49. {
  50. BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
  51. "Not implemented for this Tag type.",
  52. Allocator, Value, Parameters, Box, Tag);
  53. };
  54. template <typename Allocators, typename Node>
  55. struct create_node
  56. {
  57. BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
  58. "Not implemented for this Node type.",
  59. Allocators, Node);
  60. };
  61. template <typename Allocators, typename Node>
  62. struct destroy_node
  63. {
  64. BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
  65. "Not implemented for this Node type.",
  66. Allocators, Node);
  67. };
  68. }} // namespace detail::rtree
  69. }}} // namespace boost::geometry::index
  70. #endif // BOOST_GEOMETRY_INDEX_DETAIL_RTREE_NODE_CONCEPT_HPP