为什么 `std::views::iota` 括号初始化不起作用?

问题描述 投票:0回答:1

为什么这是非法声明?

> std::views::iota r(0, 10);
error: expected ‘;’ before ‘r’

但这有效

> auto r = std::views::iota(0, 10);
c++ iota
1个回答
1
投票

views::iota
是一个自定义点对象,它是一个重载返回
operator()
对象的
ranges::iota_view
的函数对象。

ranges::iota_view
views::iota
的实现细节,它是一个类类型。所以你的意思可能是

std::ranges::iota_view r(0, 10);
© www.soinside.com 2019 - 2024. All rights reserved.