]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.hpp
* typeck.c (build_modify_expr): Tidy diagnostic message.
[thirdparty/gcc.git] / libstdc++-v3 / docs / html / ext / pb_assoc / sample_ranged_hash_fn.hpp
1 /**
2 * @file sample_ranged_hash_fn.hpp
3 * Contains a ranged hash policy.
4 *
5 * Copyright Ami Tavory, IBM-HRL, 2004.
6 *
7 * Permission to use, copy, modify, sell, and distribute this software
8 * is hereby granted without fee, provided that the above copyright notice
9 * appears in all copies, and that both that copyright notice and this
10 * permission notice appear in supporting documentation.
11 *
12 * None of the above authors, nor IBM Haifa Research Laboratories, make any
13 * representation about the suitability of this software for any
14 * purpose. It is provided "as is" without express or implied warranty.
15 **/
16
17
18 #ifndef SAMPLE_RANGED_HASH_FN_HPP
19 #define SAMPLE_RANGED_HASH_FN_HPP
20
21
22 /**
23 * <class
24 * description = "A sample ranged-hash functor."
25 * comment = "This class serves to show the interface a ranged-hash
26 * functor needs to support.">
27 **/
28 class sample_ranged_hash_fn
29 {
30 /**
31 *******************************************************************************
32 *******************************************************************************
33 * <public_methods_group>
34 **/
35 public:
36 /**
37 ***************************************************************************
38 ***************************************************************************
39 ** <group description = "Constructors, destructor, and related.">
40 **/
41
42 /*
43 * <fn description = "Default constructor."
44 * comment = "Must be default constructible.">
45 **/
46 sample_ranged_hash_fn
47 ();
48 /** </fn> **/
49
50 /*
51 * <fn description = "Copy constructor."
52 * comment = "Must be copy constructible.">
53 **/
54 sample_ranged_hash_fn
55 (const sample_ranged_hash_fn &r_other);
56 /** </fn> **/
57
58 /*
59 * <fn description = "Swaps content."
60 * comment = "Must be swappable (if there is such a word).">
61 **/
62 inline void
63 swap
64 (sample_ranged_hash_fn &r_other);
65 /** </fn> **/
66
67 /*
68 ***************************************************************************
69 ***************************************************************************
70 * </group>
71 **/
72
73 /**
74 *******************************************************************************
75 *******************************************************************************
76 * </public_methods_group>
77 **/
78
79
80 /**
81 *******************************************************************************
82 *******************************************************************************
83 * <protected_methods_group>
84 **/
85 protected:
86
87 /**
88 ***************************************************************************
89 ***************************************************************************
90 ** <group
91 * description = "Notification methods.">
92 **/
93
94 /*
95 * <fn
96 * description = "Notifies the policy object that the container's
97 * __size has changed to size."
98 * comment = "@@sample_ranged_hash_fn_size_type_comment">
99 **/
100 void
101 notify_resized
102 (size_type size);
103 /** </fn> **/
104
105 /**
106 ***************************************************************************
107 ***************************************************************************
108 ** </group>
109 **/
110
111
112 /**
113 ***************************************************************************
114 ***************************************************************************
115 ** <group
116 * description = "Operators.">
117 **/
118
119 /*
120 * <fn description = "Transforms the const key reference
121 * r_key into a position
122 * within the table.">
123 * comment = "@@sample_ranged_hash_fn_size_type_comment">
124 **/
125 inline size_type
126 operator()
127 (const_key_reference r_key) const;
128 /** </fn> **/
129
130 /**
131 ***************************************************************************
132 ***************************************************************************
133 ** </group>
134 **/
135 };
136 /**
137 * </class>
138 **/
139
140
141 #endif // #ifndef SAMPLE_RANGED_HASH_FN_HPP