为什么这是非法声明?
> std::views::iota r(0, 10);
error: expected ‘;’ before ‘r’
但这有效
> auto r = std::views::iota(0, 10);
views::iota
是一个自定义点对象,它是一个重载返回 operator()
对象的 ranges::iota_view
的函数对象。
ranges::iota_view
是views::iota
的实现细节,它是一个类类型。所以你的意思可能是
std::ranges::iota_view r(0, 10);