Как вернуть одну функцию boost :: range или две объединенные boost :: range из функции - PullRequest
1 голос
/ 26 мая 2019

Я хочу написать функцию, которая возвращает либо диапазон, представляющий два контейнера, либо диапазон для одного контейнера.Цель состоит в том, чтобы абстрагировать это в итерации:

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);
    }
}

Но он не компилируется.Вероятно, я не использую правильный тип здесь.Как я могу объявить функцию, которая возвращает общий тип, который мог бы равномерно повторяться независимо от того, представляет ли он один или два контейнера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...