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_SEt_ 4 #define DLIB_SEt_ 5 6 #include "set/set_kernel_1.h" 7 #include "set/set_kernel_c.h" 8 9 10 11 #include "binary_search_tree.h" 12 13 #include "set/set_compare_1.h" 14 15 #include "algs.h" 16 #include <functional> 17 18 namespace dlib 19 { 20 21 template < 22 typename T, 23 typename mem_manager = default_memory_manager, 24 typename compare = std::less<T> 25 > 26 class set 27 { set()28 set() {} 29 30 31 32 33 34 typedef typename binary_search_tree<T,char,mem_manager,compare>::kernel_1a 35 binary_search_tree_1; 36 37 typedef typename binary_search_tree<T,char,mem_manager,compare>::kernel_2a 38 binary_search_tree_2; 39 40 public: 41 42 //----------- kernels --------------- 43 44 // kernel_1a 45 typedef set_kernel_1<T,binary_search_tree_1,mem_manager> 46 kernel_1a; 47 typedef set_kernel_c<kernel_1a> 48 kernel_1a_c; 49 50 // kernel_1b 51 typedef set_kernel_1<T,binary_search_tree_2,mem_manager> 52 kernel_1b; 53 typedef set_kernel_c<kernel_1b> 54 kernel_1b_c; 55 56 57 //---------- extensions ------------ 58 59 // compare extensions 60 typedef set_compare_1<kernel_1a> 61 compare_1a; 62 typedef set_compare_1<kernel_1a_c> 63 compare_1a_c; 64 65 typedef set_compare_1<kernel_1b> 66 compare_1b; 67 typedef set_compare_1<kernel_1b_c> 68 compare_1b_c; 69 70 }; 71 } 72 73 #endif // DLIB_SEt_ 74 75