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