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