Namespaces
Variants

deduction guides for std::ranges::iota_view

From cppreference.net
Ranges library
Range adaptors
Определено в заголовочном файле <ranges>
template < class W, class Bound >

requires ( ! /*is-integer-like*/ < W > ||
! /*is-integer-like*/ < Bound > ||
/*is-signed-integer-like*/ < W > == /*is-signed-integer-like*/ < Bound > )

iota_view ( W, Bound ) - > iota_view < W, Bound > ;
(начиная с C++20)

Этот гид дедукции предоставлен для iota_view чтобы позволить дедукцию из начального значения и ограничивающего значения.

Для определений /*is-integer-like*/ и /*is-signed-integer-like*/ смотрите is-integer-like .

Обратите внимание, что руководство защищает от ошибок, возникающих из-за несоответствия знаков, таких как views:: iota ( 0 , v. size ( ) ) , где 0 имеет знаковый тип, а v. size ( ) — беззнаковый.

Пример

#include <cassert>
#include <ranges>
int main()
{
    auto io = std::ranges::iota_view(1L, 7L); // выводит W и Bound как "long"
    assert(io.front() == 1L and io.back() == 6L);
}