#include "tuple.hpp" #include "tap.hpp" #include template struct int_mapper { typedef int type; }; int main () { util::TAP::logger tap; { auto tuple = std::make_tuple (1,2,3,4); std::vector expected {{ 1, 2, 3, 4 }}; std::vector actual; util::tuple::for_each ([&actual] (auto i) { actual.push_back (i); }, tuple); tap.expect_eq (actual, expected, "value iteration"); } { 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::for_type ([&actual] (auto i) { actual.push_back (typeid (typename decltype(i)::type)); }); tap.expect_eq (actual, expected, "type iteration"); } { using src_t = std::tuple; using dst_t = typename util::tuple::map::type; tap.expect (std::is_same>::value, "tuple type mapping"); } }