Информация об изменениях

Сообщение Re: boost::adaptors для временного объекта от 15.10.2016 20:10

Изменено 15.10.2016 20:11 Evgeny.Panasyuk

Здравствуйте, df, Вы писали:

df>А как бы все-таки обмануть? Без того, чтобы предварительно сохранять результат GetData()?


Придётся либо использовать только в рамках выражения (в котором живёт временная переменная), либо сохранять. Можно сделать обёртку, которая внутри будет хранить и исходный контейнер, и адаптеры (либо уже адаптированный range), и сама обёртка при этом будет является range. То есть примерно:
auto doubled = wrapper_owner(GetData(), transformed(_1 * 2));
Re: boost::adaptors для временного объекта
Здравствуйте, df, Вы писали:

df>А как бы все-таки обмануть? Без того, чтобы предварительно сохранять результат GetData()?


Придётся либо использовать только в рамках выражения (в котором живёт временная переменная), либо сохранять. Можно сделать обёртку, которая внутри будет хранить и исходный контейнер, и адаптеры (либо уже адаптированный range), и сама обёртка при этом будет является range. То есть примерно:
auto doubled = make_wrapper_owner(GetData(), transformed(_1 * 2));