ordered_index_fwd.hpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /* Copyright 2003-2008 Joaquin M Lopez Munoz.
  2. * Distributed under the Boost Software License, Version 1.0.
  3. * (See accompanying file LICENSE_1_0.txt or copy at
  4. * http://www.boost.org/LICENSE_1_0.txt)
  5. *
  6. * See http://www.boost.org/libs/multi_index for library home page.
  7. */
  8. #ifndef BOOST_MULTI_INDEX_ORDERED_INDEX_FWD_HPP
  9. #define BOOST_MULTI_INDEX_ORDERED_INDEX_FWD_HPP
  10. #if defined(_MSC_VER)&&(_MSC_VER>=1200)
  11. #pragma once
  12. #endif
  13. #include <boost/multi_index/detail/ord_index_args.hpp>
  14. namespace boost{
  15. namespace multi_index{
  16. namespace detail{
  17. template<
  18. typename KeyFromValue,typename Compare,
  19. typename SuperMeta,typename TagList,typename Category
  20. >
  21. class ordered_index;
  22. template<
  23. typename KeyFromValue1,typename Compare1,
  24. typename SuperMeta1,typename TagList1,typename Category1,
  25. typename KeyFromValue2,typename Compare2,
  26. typename SuperMeta2,typename TagList2,typename Category2
  27. >
  28. bool operator==(
  29. const ordered_index<
  30. KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x,
  31. const ordered_index<
  32. KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y);
  33. template<
  34. typename KeyFromValue1,typename Compare1,
  35. typename SuperMeta1,typename TagList1,typename Category1,
  36. typename KeyFromValue2,typename Compare2,
  37. typename SuperMeta2,typename TagList2,typename Category2
  38. >
  39. bool operator<(
  40. const ordered_index<
  41. KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x,
  42. const ordered_index<
  43. KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y);
  44. template<
  45. typename KeyFromValue1,typename Compare1,
  46. typename SuperMeta1,typename TagList1,typename Category1,
  47. typename KeyFromValue2,typename Compare2,
  48. typename SuperMeta2,typename TagList2,typename Category2
  49. >
  50. bool operator!=(
  51. const ordered_index<
  52. KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x,
  53. const ordered_index<
  54. KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y);
  55. template<
  56. typename KeyFromValue1,typename Compare1,
  57. typename SuperMeta1,typename TagList1,typename Category1,
  58. typename KeyFromValue2,typename Compare2,
  59. typename SuperMeta2,typename TagList2,typename Category2
  60. >
  61. bool operator>(
  62. const ordered_index<
  63. KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x,
  64. const ordered_index<
  65. KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y);
  66. template<
  67. typename KeyFromValue1,typename Compare1,
  68. typename SuperMeta1,typename TagList1,typename Category1,
  69. typename KeyFromValue2,typename Compare2,
  70. typename SuperMeta2,typename TagList2,typename Category2
  71. >
  72. bool operator>=(
  73. const ordered_index<
  74. KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x,
  75. const ordered_index<
  76. KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y);
  77. template<
  78. typename KeyFromValue1,typename Compare1,
  79. typename SuperMeta1,typename TagList1,typename Category1,
  80. typename KeyFromValue2,typename Compare2,
  81. typename SuperMeta2,typename TagList2,typename Category2
  82. >
  83. bool operator<=(
  84. const ordered_index<
  85. KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x,
  86. const ordered_index<
  87. KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y);
  88. template<
  89. typename KeyFromValue,typename Compare,
  90. typename SuperMeta,typename TagList,typename Category
  91. >
  92. void swap(
  93. ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& x,
  94. ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& y);
  95. } /* namespace multi_index::detail */
  96. /* ordered_index specifiers */
  97. template<typename Arg1,typename Arg2=mpl::na,typename Arg3=mpl::na>
  98. struct ordered_unique;
  99. template<typename Arg1,typename Arg2=mpl::na,typename Arg3=mpl::na>
  100. struct ordered_non_unique;
  101. } /* namespace multi_index */
  102. } /* namespace boost */
  103. #endif