问使用std::for_each和std::view::iota的并行循环EN当给定一个容器范围,我们通常需要对其中的每个...
2) views::iota(E) 与views::iota(E, F) 对于适合的 E 和F 子表达式分别表达式等价于iota_view{E} 与iota_view{E, F}。表达式等价表达式 e 表达式等价于表达式 f ,若 e 与f 拥有相同效果,均为潜在抛出或均非潜在抛出(即 noexcept(e) == noexcept(f)),且均为常量子表达式或均非常量子表达式。
std::ranges::iota_view::base_ W value_=W();/* exposition-only */ the current value std::ranges::iota_view::pred_ Bound bound_=Bound();/* exposition-only */ the bound (defaults tostd::unreachable_sentinel_t) Member functions
iota_view::iterator::operator++(int) (C++20)(C++20) iota_view::iterator::operator--iota_view::iterator::operator--(int) (C++20)(C++20) iota_view::iterator::operator+= (C++20) iota_view::iterator::operator-= (C++20) Non-member functions operator==(iota_view::iterator)operator<(iota...
view_interface subrange Range factories empty_viewviews::empty single_viewviews::single iota_viewviews::iota repeat_viewviews::repeat (C++23)(C++23) basic_istream_viewviews::istream Range adaptors views::all_tviews::all ref_view owning_view as_rvalue_viewviews::as_rvalue (C++23)(C++23...
ranges::iota_view<W, Bound>::iterator 是ranges::iota_view<W, Bound> 的end() 返回的可及哨位的类型。 数据成员 成员 定义 Bound bound_ 哨位值(仅用于阐述的成员对象*) 成员函数 std::ranges::iota_view::sentinel::sentinel /*sentinel*/() = default; (1) (C++20 起) constexpr explicit ...
std::ranges::iota_view<int64_t, int64_t>(0, 10) 第一个模板参数为 W,应为 std::weakly_incrementable 。第二个模板参数为Bound ,该参数应为std::semiregular 。 这两个模板参数的目的是什么?它们可以用于控制 iota_view? 返回的类型吗? 换句话说,在上面的示例中,它们对推论类型有什么影响? ?
std::vector<int>是一个连续的范围,但views::iota(0, 100)不是连续的,它只是随机访问。 旁注:写views::iota(0, 1000),不写ranges::iota_view{0, 1000}。几乎没有任何理由要重写ranges::meow_view,views::meow而且很容易变得更糟 - 后者并不总是给你属于前者类型的东西。将其视为meow_view实施细节。
参考: https://en.cppreference.com/w/cpp/ranges/iota_view有 CMakeLists.txt cmake_minimum_required(VERSION 3.20) project ( testprj ) set ( PRJ_COMPILE_FEATURES ) list ( APPEND PRJ_COMPILE_FEATURES cx…
由于'g' + 1产生整数提升,这使得views::iota('a', 'g' + 1)产生iota_view迭代器类型与哨兵类型不同的迭代器类型。 根据[range.iota.sentinel],哨兵类型只能在满足时从迭代器类型中减去sized_sentinel_for<W, Bound>,而基本类型则不然char,int因为它们不是迭代器。 换句话说,这破坏了iota_view的哨兵和迭...