#ifndef EFL_EET_COMPOSITE_HH_ #define EFL_EET_COMPOSITE_HH_ namespace efl { namespace eet { template struct descriptor; namespace _detail { struct member_desc_info { const char* name; std::size_t offset; }; template void descriptor_register_composite_member( ::Eet_Data_Descriptor*, int , eet::descriptorconst* , std::integral_constant) { } template void descriptor_register_composite_member( ::Eet_Data_Descriptor* cls, int offset_base , eet::descriptorconst* descriptor , std::integral_constant , typename std::enable_if::type* = 0) { typedef typename std::tuple_element >::type member_type; eet_data_descriptor_element_add(cls, descriptor->get_member_info()[I].name , _eet_type::value, EET_G_UNKNOWN , offset_base + descriptor->get_member_info()[I].offset , 0, nullptr, nullptr); _detail::descriptor_register_composite_member (cls, offset_base, descriptor, std::integral_constant()); } template void descriptor_type_register_composite( ::Eet_Data_Descriptor* cls, member_desc_info info , eet::descriptorconst* descriptor) { _detail::descriptor_register_composite_member::members::value> (cls, info.offset, descriptor, std::integral_constant()); } } } } #endif