使用范围/视图而不是模板的通用编程?
我希望有接受任何固定类型容器的函数。例如,将同时接受std::array<float,1>
和std::array<float,2>
的函数。
我原以为使用Range可以做到这一点,但我意识到我的理解相当肤浅。
是否可以在没有模板的情况下实现?
编辑:我们是否可以使用范围库来定义一个类型,该范围库将执行与SPAN相同的操作,但将用于非连续容器?也许我的问题表达得不对,我的意思可能是视野而不是容器。
解决方案
对于连续范围,您可以使用std::span
(C++20):
void foo(std::span<float>)
{
// ...
}
相关文章