Добрый день.
Я начал разбираться что за зверь такой эти 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);
}
Как это сделать?
Или я чего-то не понимаю, и так нельзя?