Рассмотрим следующий код:
std::function<void(void)> f = []() {};
std::function<void(void)>* fp = new std::function<void(void)>(f);
Всякий раз, когда программа покидает контекст этих строк (скажем, они были вызваны внутри функции, а функция возвращает) f
и fp
памятьможет быть исправлено в какой-то момент.Это нормально, потому что меня интересует только fp
, и я получил его копию.
Суть в том, что у меня есть указатель на функцию (fp
), которую я могу вызывать позже, когда захочу.Итак, до тех пор, пока я не delete fp
, возникает вопрос:
Будет ли когда-либо освобожден f
, что сделает fp
недействительным?