Как с помощью только стандартной библиотеки преобразовать функцию с аутпут параметром в функцию возвращающую значение, не создавая дополнительных функций и классов?
Здравствуйте, ankorol, Вы писали:
A>Как с помощью только стандартной библиотеки преобразовать функцию с аутпут параметром в функцию возвращающую значение, не создавая дополнительных функций и классов?
Здравствуйте, Abyx, Вы писали:
A>Здравствуйте, ankorol, Вы писали:
A>>Как с помощью только стандартной библиотеки преобразовать функцию с аутпут параметром в функцию возвращающую значение, не создавая дополнительных функций и классов?
A>всмысле нужен адаптер?
A>наверное только С++0х лямбдой A>
Здравствуйте, Abyx, Вы писали:
A>Здравствуйте, ankorol, Вы писали:
A>>Как с помощью только стандартной библиотеки преобразовать функцию с аутпут параметром в функцию возвращающую значение, не создавая дополнительных функций и классов?
A>всмысле нужен адаптер?
A>наверное только С++0х лямбдой A>
A>[]()->int { int x; foo(x); return x; }
A>
А разве лямбда не создаст дополнительную функцию или класс ?
Здравствуйте, ankorol, Вы писали:
A>Как с помощью только стандартной библиотеки преобразовать функцию с аутпут параметром в функцию возвращающую значение, не создавая дополнительных функций и классов?
void f(T&);
T _tmp_; //дополнительные переменные вроде не запртили :)
T some_var;
some_var = (f(_tmp_), _tmp_);// the magic :)
Здравствуйте, TheBeard, Вы писали:
TB>Тогда надо делать f не функцией, а функтором. В конструкторе передавать ссылку на поток, а чтение делать в перегруженном operator().
Все верно, мне всего лишь хотелось чтобы такой функтор уже был в STL...
Здравствуйте, ankorol, Вы писали:
A>Здравствуйте, TheBeard, Вы писали:
TB>>А std::copy() в сочетании с input iterators не прокатит?
A>input iterator не произвольного доступа, тоесть я могу ограничить его каким-то кол-вом, а только концом ввода:
A>
A>istream_iterator<int>(cin) + NumbersToRead; // ошибка: итератор не произвольного доступа
A>
Здравствуйте, ankorol, Вы писали:
A>Здравствуйте, TheBeard, Вы писали:
TB>>Тогда надо делать f не функцией, а функтором. В конструкторе передавать ссылку на поток, а чтение делать в перегруженном operator().
A>Все верно, мне всего лишь хотелось чтобы такой функтор уже был в STL...