推导指引 std::ranges::iota_view
来自 zh.cppreference.net
| 定义于头文件 <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); }