renamed tuple to int_tuple to avoid name conflict with std::tuple