mirror of
https://github.com/boostorg/hana.git
synced 2026-02-20 14:52:11 +00:00
20 lines
456 B
C++
20 lines
456 B
C++
template <typename T, typename Enable = void*>
|
|
struct datatype_impl { using type = T; };
|
|
|
|
template <typename T>
|
|
struct datatype_impl<T, decltype((void*)(typename T::hana_datatype*)0)> {
|
|
using type = typename T::hana_datatype;
|
|
};
|
|
|
|
template <typename T>
|
|
struct datatype {
|
|
using type = typename datatype_impl<T>::type;
|
|
};
|
|
|
|
template <int i>
|
|
struct x { using hana_datatype = x; };
|
|
|
|
<% for i in 0..n %>
|
|
template struct datatype<x<<%= i %>>>;
|
|
<% end %>
|