#include "tap.hpp" #include "tuple/type.hpp" #include template struct int_mapper { typedef int type; }; int main (void) { util::TAP::logger tap; { using tuple_t = std::tuple; tap.expect_eq (util::tuple::type::index::value, 1u, "tuple index extraction"); } { #if !defined(NO_RTTI) auto tuple = std::make_tuple (1u, 1, 1.f, 1.); std::vector expected { std::type_index (typeid (1u)), std::type_index (typeid (1)), std::type_index (typeid (1.f)), std::type_index (typeid (1.)) }; std::vector actual; util::tuple::type::each ([&actual] (auto i) { actual.push_back (typeid (typename decltype(i)::type)); }); tap.expect_eq (actual, expected, "type iteration"); #else tap.skip ("type iteration because no-rtti"); #endif } { using src_t = std::tuple; using dst_t = typename util::tuple::type::map::type; tap.expect (std::is_same>::value, "tuple type mapping"); } return tap.status (); }