В принципе, я хотел бы иметь следующий семантический:Functor ссылки через станд :: функция
#include <functional>
#include <iostream>
class test
{
public:
void add(std::function<void()> f)
{
f();
}
void operator()()
{
++x;
}
int x = 33;
};
int main()
{
test t;
t.add(t);
// wanted: x == 34 instead: x == 33 since add(t) copies it
}
Я понимаю станд :: функция оборачивает копию вызываемого объекта, но есть ли способ, чтобы получить ссылка на вызываемый объект с использованием std :: function?
Пожалуйста, помечать вопрос с языком программирования, который вы используете, так что он показывает в соответствующих списках. – IMSoP
+1 для такого приятного примера для 'std :: ref()' – ikh