В python есть крайне полезные функции zip, enumerate, range. Мне нужно что-то подобное для cpp/cuda (c++17). Если c range и enumerate более менее понятно, то как реализовать zip не соображу. Семантически это должно быть variadic template
template<typename t, typename... ts>
class zip : zip<ts...>{
zip(t arg, ts... args);
struct iterator;
begin() -> iterator;
end() -> iterator;
};
for(auto [x,y,z] : zip(xs,ys,zs))
using ret_type = tuple<decltype(begin(declval<t>())), decltype(???)>
$cast AntonI, может у вас кто такое делал?