If you prefer writing:
for (auto&& [i, it] : vec | std::views::enumerate)
println ("{}:{}", ++i, it);
instead of: foreach (i, s; vec)
writeln(i, ": ", s);
well, what can I say?