Оператор | перегружен для адаптора и рэнджа и возвращает рэндж. Рэндж по определению не является владельцем данных, что-то вроде view (так, кстати, это называется в новых Ranges Эрика Неблера). Так что нужно провернуть все действия с адапторами, пока временный объект не разрушился, значит, нужно писать oneliner.
std::cout <<
(
std::vector<int>{ 1,2,3,4,5,6,7,8,9 } |
boost::adaptors::transformed
([](auto& i) { return i * 2; })
) << std::endl;
Здравствуйте, df, Вы писали:
А как бы все-таки обмануть? Без того, чтобы предварительно сохранять результат GetData()?