如何从未知视图声明 range::v3::View 变量
how do to declare a range::v3::View variable from an unknown view
我的问题和之前的 post 几乎一样:
但是那个答案只是说避免声明 return 类型并使用 auto
代替,这并没有解决我的问题,而且我在任何地方都找不到这个问题。
我需要创建一个结构来保存某种类型的视图 return 由 运行 时确定的几个函数之一编辑。这里的代码片段基于引用的post。其他功能类似,只是视图类型不同;
auto my_view(...)
{ // ...
return ranges::view::reverse | ranges::view::filter([](int l){return l>5;});
}
我的第一直觉是根据 returned 类型制作模板结构,我认为这可以解决问题,但我如何在没有类型名的情况下做到这一点?
如何声明这样一个 class 变量?
另外,因为我的情况其实比上面更复杂,模板不太理想。如果有一种方法可以将任何视图保存为非模板结构,我更愿意?
ranges::any_view 是最能解决我问题的答案
我能够创建一个包含成员 any_view 的结构,并像您期望的典型 ranges::view 一样使用它,而无需知道确切的结构输入
我的问题和之前的 post 几乎一样:
但是那个答案只是说避免声明 return 类型并使用 auto
代替,这并没有解决我的问题,而且我在任何地方都找不到这个问题。
我需要创建一个结构来保存某种类型的视图 return 由 运行 时确定的几个函数之一编辑。这里的代码片段基于引用的post。其他功能类似,只是视图类型不同;
auto my_view(...)
{ // ...
return ranges::view::reverse | ranges::view::filter([](int l){return l>5;});
}
我的第一直觉是根据 returned 类型制作模板结构,我认为这可以解决问题,但我如何在没有类型名的情况下做到这一点?
如何声明这样一个 class 变量?
另外,因为我的情况其实比上面更复杂,模板不太理想。如果有一种方法可以将任何视图保存为非模板结构,我更愿意?
ranges::any_view 是最能解决我问题的答案
我能够创建一个包含成员 any_view