59#if defined DISPENSO_DEBUG
60 : onceCallable_(
nullptr)
73 DISPENSO_REQUIRES(OnceCallableFunc<F>)
74 OnceFunction(F&& f) : onceCallable_(detail::createOnceCallable(std::forward<F>(f))) {}
80#if defined DISPENSO_DEBUG
81 other.onceCallable_ =
nullptr;
86 onceCallable_ = other.onceCallable_;
87#if defined DISPENSO_DEBUG
89 other.onceCallable_ =
nullptr;
99 void operator()()
const {
100#if defined DISPENSO_DEBUG
101 assert(onceCallable_ !=
nullptr &&
"Must not use OnceFunction more than once!");
104 onceCallable_->run();
106#if defined DISPENSO_DEBUG
107 onceCallable_ =
nullptr;
112 OnceFunction(detail::OnceCallable* func,
bool) : onceCallable_(func) {}
114 mutable detail::OnceCallable* onceCallable_;
116 template <
typename Result>
117 friend class detail::FutureBase;
118 template <
typename Result>
119 friend class detail::FutureImplBase;