summaryrefslogtreecommitdiff
path: root/src/bindings/cxx/eina_cxx/eina_tuple_c.hh
blob: 64d67c49a9307f692ca213bf33e227bd207c30c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef EFL_EINA_EINA_TUPLE_C_HH_
#define EFL_EINA_EINA_TUPLE_C_HH_

#include <tuple>

namespace efl { namespace eina { namespace _mpl {

template <typename T, T... Ts>
using tuple_c = std::tuple<std::integral_constant<T, Ts>...>;

template <typename T, T... Ts>
constexpr std::size_t tuple_c_size(tuple_c<T, Ts...> const&)
{
  return sizeof...(Ts);
}

constexpr std::size_t tuple_c_size(std::tuple<> const&)
{
  return 0;
}

} } }

#endif