You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

range-v3 iota_view迭代器用64位初始值时非随机访问,如何使其支持?

问题:range-v3的iota_view 64位初始值迭代器无随机访问特性

经测试发现,当使用64位类型(如std::size_t、long、ssize_t)作为初始值时,range-v3的iota_view迭代器不具备随机访问特性;而GCC标准库的iota_view无此问题,且range-v3使用32位初始值(如int)时可正常支持随机访问。

测试代码如下(基于GCC 13及range-v3 trunk版本):

#if 1
// range v3
#include <range/v3/all.hpp>
namespace rng = ::ranges;

#else
#include <ranges>
namespace rng = std::ranges;
#endif

int main()
{

    // works
    // int base = 100;

    // does not work
    //std::size_t base = 100;
    //long base = 100;
    ssize_t base = 100;

    static_assert(std::random_access_iterator<decltype(rng::begin(rng::views::iota(base)))>);
}

请问是否存在方法,使range-v3的iota_view迭代器在使用64位初始值时支持随机访问?


内容的提问来源于stack exchange,提问作者rscohn2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 14:52:44