1 // Copyright (C) 2003  Davis E. King (davis@dlib.net)
2 // License: Boost Software License   See LICENSE.txt for the full license.
3 #ifndef DLIB_HASH_SEt_
4 #define DLIB_HASH_SEt_
5 
6 #include "hash_set/hash_set_kernel_1.h"
7 #include "hash_set/hash_set_kernel_c.h"
8 
9 #include "hash_table.h"
10 #include "algs.h"
11 
12 
13 #include "algs.h"
14 #include <functional>
15 
16 
17 namespace dlib
18 {
19 
20     template <
21         typename T,
22         unsigned long expnum,
23         typename mem_manager = default_memory_manager,
24         typename compare = std::less<T>
25         >
26     class hash_set
27     {
hash_set()28         hash_set() {}
29 
30         typedef typename hash_table<T,char,mem_manager,compare>::kernel_1a ht1a;
31         typedef typename hash_table<T,char,mem_manager,compare>::kernel_1a ht2a;
32         typedef typename hash_table<T,char,mem_manager,compare>::kernel_1a ht2b;
33 
34     public:
35 
36         //----------- kernels ---------------
37 
38         // kernel_1a
39         typedef     hash_set_kernel_1<T,expnum,ht1a,mem_manager>
40                     kernel_1a;
41         typedef     hash_set_kernel_c<kernel_1a>
42                     kernel_1a_c;
43 
44         // kernel_1b
45         typedef     hash_set_kernel_1<T,expnum,ht2a,mem_manager>
46                     kernel_1b;
47         typedef     hash_set_kernel_c<kernel_1b>
48                     kernel_1b_c;
49 
50         // kernel_1c
51         typedef     hash_set_kernel_1<T,expnum,ht2b,mem_manager>
52                     kernel_1c;
53         typedef     hash_set_kernel_c<kernel_1c>
54                     kernel_1c_c;
55 
56 
57 
58 
59     };
60 }
61 
62 #endif // DLIB_HASH_SEt_
63 
64