C++ 20 apresenta std::ranges::iota_view
.
Pode ser usado como parte de um for
loop, por exemplo.
for (auto i: std::ranges::iota_view(0, 10))
Parece levar dois parâmetros de template. Por exemplo, o seguinte será compilado.
std::ranges::iota_view<int64_t, int64_t>(0, 10)
O primeiro parâmetro do modelo é W
which should be std::weakly_incrementable
. O segundo parâmetro do modelo é Bound
which should be std::semiregular
.
Qual é o propósito desses dois parâmetros de template? Eles podem ser usados para controlar o tipo retornado por iota_view
?
Em outras palavras, que efeito, se houver, eles têm no tipo deduzido auto i
no exemplo acima?