Я не уверен, что использую точную терминологию, но я постараюсь быть как можно более понятным, чтобы избежать путаницы.
Предположим, у меня есть переменная std :: function
std::function<void(int)> callback ;
В силу некоторых причин, выходящих за рамки моей компетенции, я не могу изменить прототип функции. Я получаю переменную std :: function в какой-то момент в моем коде, и мне нужно вызвать ее. Что-то вроде этого:
int a = 10 // just an example value
callback(a);
Теперь у меня есть другая переменная. Давайте назовем его id.
int id = rand(); // Let us assume that rand here generates a random variable
int a = 10 // just an example value
callback(a);
Я хочу, чтобы id был доступен внутри обратного вызова, т.е. я ищу некоторую форму закрытия. Есть ли способ сделать это без создания id
статического / глобального.