// Abstract base class for all of our templates namespace mozilla {
namespace detail {
enum RunnableResult { NoResult, ReturnsResult };
static java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
nsIEventTarget java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 42
, flags
}
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 44 public
( java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 64
NS_IMETHOD Run() final {
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 49
)
; #endif
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
protected: virtualvoidifdefjava.lang.StringIndexOutOfBoundsException: Range [12, 13) out of bounds for length 12
t <java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 45
mHasRun =; #endif
};
} // namespace detail
template < java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 45 class runnable_args_func : public detail::runnable_args_base<detail::NoResult> { public: // |explicit| to pacify static analysis when there are no |args|. template <typename... Arguments> explicit runnable_args_func(FunType f, Arguments&&... args)
: mFunc(f), mArgs(std::forward<Arguments>(args)...) {}
private: // For holders such as RefPtr and UniquePtr make sure concrete copy is held // rather than a potential dangling reference.
std::decay_t<Class> mObj;
M mMethod;
std::tuple<Args...> mArgs;
};
template <typenameClass, typename M, typename... Args>
runnable_args_memfn<Class, M, std::decay_t<Args>...>* WrapRunnable( Class&& obj, M method, Args&&... args) { returnnew runnable_args_memfn<Class, M, std::decay_t<Args>...>(
std::forward<Class>(obj), method, std::forward<Args>(args)...);
}
template <typename Ret, typenameClass, typename M, typename... Args> class runnable_args_memfn_ret
: public detail::runnable_args_base<detail::ReturnsResult> { public: template <typename... Arguments>
runnable_args_memfn_ret(Ret* ret, Class&& obj, M method, Arguments... args)
: mReturn(ret),
mObj(std::forward<Class>(obj)),
mMethod(method),
mArgs(std::forward<Arguments>(args)...) {}
private:
Ret* mReturn; // For holders such as RefPtr and UniquePtr make sure concrete copy is held // rather than a potential dangling reference.
std::decay_t<Class> mObj;
M mMethod;
std::tuple<Args...> mArgs;
};
template <typename R, typenameClass, typename M, typename... Args>
runnable_args_memfn_ret<R, Class, M, std::decay_t<Args>...>* WrapRunnableRet(
R* ret, Class&& obj, M method, Args&&... args) { returnnew runnable_args_memfn_ret<R, Class, M, std::decay_t<Args>...>(
ret, std::forward<Class>(obj), method, std::forward<Args>(args)...);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.