eet-cxx: add implementation for eet C++.
[platform/upstream/efl.git] / src / bindings / eet_cxx / eet_tuple.hh
1 #ifndef EFL_EET_EET_TUPLE_HH_
2 #define EFL_EET_EET_TUPLE_HH_
3
4 namespace efl { namespace eet {
5
6 namespace _mpl {
7
8 template <typename A, typename... Args>
9 struct push_back;
10
11 template <template <typename... Args> class C, typename... Args, typename... AArgs>
12 struct push_back<C<Args...>, AArgs...>
13 {
14   typedef C<Args..., AArgs...> type;
15 };
16
17 template <typename A, typename... Args>
18 struct push_front;
19
20 template <template <typename... Args> class C, typename... Args, typename... AArgs>
21 struct push_front<C<Args...>, AArgs...>
22 {
23   typedef C<Args..., AArgs...> type;
24 };
25
26 template <typename A>
27 struct pop_front;
28
29 template <template <typename...> class C, typename T, typename... Args>
30 struct pop_front<C<T, Args...> >
31 {
32   typedef C<Args...> type;
33 };
34
35 }
36
37 } }
38
39 #endif