создать range и передать его в функцию
От: DTF  
Дата: 05.03.22 10:57
Оценка:
Добрый день.

Я начал разбираться что за зверь такой эти ranges, и что-то не могу понять, как с ними работать.

Вот вроде бы простая хотелка:
взять vector<int> или list<int>, отфильтровать значения,
результат передать в нешаблонную функцию, в этой функции проитерироваться по полученному диапазону

Т.е. что-то такое:

bool IsEven(int i)
{
    return i % 2 == 0;
}

void Foo(a_strange_type<int> range)
{
    for (int i : range)
        std::cout << i << std::endl;
}

int main()
{
    std::vector<int> v = {1, 2, 3};
    std::list<int> l = {4, 5, 6};

    Foo(v | IsEven); 
    Foo(l | IsEven);
}


Как это сделать?
Или я чего-то не понимаю, и так нельзя?
Отредактировано 05.03.2022 11:36 DTF . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.