1/* Copyright 2003-2015 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
9#ifndef BOOST_MULTI_INDEX_DETAIL_ORD_INDEX_IMPL_FWD_HPP
10#define BOOST_MULTI_INDEX_DETAIL_ORD_INDEX_IMPL_FWD_HPP
11
12#if defined(_MSC_VER)
13#pragma once
14#endif
15
16namespace boost{
17
18namespace multi_index{
19
20namespace detail{
21
22template<
23 typename KeyFromValue,typename Compare,
24 typename SuperMeta,typename TagList,typename Category,typename AugmentPolicy
25>
26class ordered_index;
27
28template<
29 typename KeyFromValue1,typename Compare1,
30 typename SuperMeta1,typename TagList1,typename Category1,
31 typename AugmentPolicy1,
32 typename KeyFromValue2,typename Compare2,
33 typename SuperMeta2,typename TagList2,typename Category2,
34 typename AugmentPolicy2
35>
36bool operator==(
37 const ordered_index<
38 KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1,AugmentPolicy1>& x,
39 const ordered_index<
40 KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2,AugmentPolicy2>& y);
41
42template<
43 typename KeyFromValue1,typename Compare1,
44 typename SuperMeta1,typename TagList1,typename Category1,
45 typename AugmentPolicy1,
46 typename KeyFromValue2,typename Compare2,
47 typename SuperMeta2,typename TagList2,typename Category2,
48 typename AugmentPolicy2
49>
50bool operator<(
51 const ordered_index<
52 KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1,AugmentPolicy1>& x,
53 const ordered_index<
54 KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2,AugmentPolicy2>& y);
55
56template<
57 typename KeyFromValue1,typename Compare1,
58 typename SuperMeta1,typename TagList1,typename Category1,
59 typename AugmentPolicy1,
60 typename KeyFromValue2,typename Compare2,
61 typename SuperMeta2,typename TagList2,typename Category2,
62 typename AugmentPolicy2
63>
64bool operator!=(
65 const ordered_index<
66 KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1,AugmentPolicy1>& x,
67 const ordered_index<
68 KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2,AugmentPolicy2>& y);
69
70template<
71 typename KeyFromValue1,typename Compare1,
72 typename SuperMeta1,typename TagList1,typename Category1,
73 typename AugmentPolicy1,
74 typename KeyFromValue2,typename Compare2,
75 typename SuperMeta2,typename TagList2,typename Category2,
76 typename AugmentPolicy2
77>
78bool operator>(
79 const ordered_index<
80 KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1,AugmentPolicy1>& x,
81 const ordered_index<
82 KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2,AugmentPolicy2>& y);
83
84template<
85 typename KeyFromValue1,typename Compare1,
86 typename SuperMeta1,typename TagList1,typename Category1,
87 typename AugmentPolicy1,
88 typename KeyFromValue2,typename Compare2,
89 typename SuperMeta2,typename TagList2,typename Category2,
90 typename AugmentPolicy2
91>
92bool operator>=(
93 const ordered_index<
94 KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1,AugmentPolicy1>& x,
95 const ordered_index<
96 KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2,AugmentPolicy2>& y);
97
98template<
99 typename KeyFromValue1,typename Compare1,
100 typename SuperMeta1,typename TagList1,typename Category1,
101 typename AugmentPolicy1,
102 typename KeyFromValue2,typename Compare2,
103 typename SuperMeta2,typename TagList2,typename Category2,
104 typename AugmentPolicy2
105>
106bool operator<=(
107 const ordered_index<
108 KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1,AugmentPolicy1>& x,
109 const ordered_index<
110 KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2,AugmentPolicy2>& y);
111
112template<
113 typename KeyFromValue,typename Compare,
114 typename SuperMeta,typename TagList,typename Category,typename AugmentPolicy
115>
116void swap(
117 ordered_index<
118 KeyFromValue,Compare,SuperMeta,TagList,Category,AugmentPolicy>& x,
119 ordered_index<
120 KeyFromValue,Compare,SuperMeta,TagList,Category,AugmentPolicy>& y);
121
122} /* namespace multi_index::detail */
123
124} /* namespace multi_index */
125
126} /* namespace boost */
127
128#endif
129