为什么这是非法声明?
> 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);
但是,您应该始终更喜欢使用
views::meow
而不是 ranges::meow_view
。