deduction guides for std::ranges::iota_view
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Ranges library
(C++23)(C++23)
(C++26)(C++26)
(C++23)(C++23)
(C++26)(C++26)
(C++26)(C++26)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)
(C++23)(C++23)
(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
std::ranges::iota_view
Deduction guides
Defined in header
<ranges>
template< class W, class Bound >
(since C++20)
requires (!/*is-integer-like*/<W> ||
!/*is-integer-like*/<Bound> ||
/*is-signed-integer-like*/<W> == /*is-signed-integer-like*/<Bound>)
This deduction guide is provided for iota_view
to allow deduction from an initial value and a bounding value.
For the definitions of /*is-integer-like*/ and /*is-signed-integer-like*/, see is-integer-like .
Note that the guide protects itself against bugs arising from sign mismatch, like views::iota (0, v.size()), where 0 is signed and v.size() is unsigned.
[edit] Example
Run this code
#include <cassert> #include <ranges> int main() { auto io = std::ranges::iota_view (1L, 7L); // deduces W and Bound as "long" assert (io.front() == 1L and io.back() == 6L); }