如何从函数返回单个boost :: range或两个联合的boost :: ranges

时间:2019-05-26 20:12:26

标签: c++ boost

我想编写一个函数,该函数返回代表两个容器的范围或单个容器的范围。目的是在迭代过程中抽象它:

const auto range = getRange(...);
for (const auto& object : range) {
   ...
}

我考虑过使用boost::range::join的方式:

auto getRange(...) {
    if (...) {
        return boost::range::join(container1, container2);
    } else {
        return boost::make_iterator_range(container3);
    }
}

但是它不能编译。可能我在这里没有使用正确的类型。我该如何声明一个函数,该函数返回一个公共类型,而该类型可以代表一个或两个容器而独立地进行统一迭代?

0 个答案:

没有答案