move only std::function
От: vng Беларусь https://organicmaps.app/
Дата: 13.06.19 18:30
Оценка:
Есть ли такой в природе?

Нужно:


// Функция с реализацией в cpp (обязательно, без шаблонной fn)
void foo(std::function<void()> && fn);

std::unique_ptr<int> p(new int(5));
std::function<void()> fn = [p = std::move(p)]()
{
  std::cout << *p;
};

foo(std::move(fn));
Re: move only std::function
От: nullptr_rs Россия  
Дата: 13.06.19 18:41
Оценка:
Здравствуйте, vng, Вы писали:

vng>Есть ли такой в природе?


В стандартной библиотеке — нет.
Когда понадобилось, я использовал велосипед отсюда (unique_function):

https://stackoverflow.com/questions/25330716/move-only-version-of-stdfunction
Re: move only std::function
От: Constructor  
Дата: 14.06.19 07:35
Оценка:
Здравствуйте, vng, Вы писали:

vng>Есть ли такой в природе?


Есть, например, folly::Function от Facebook.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.