Lines Matching refs:_Callable
108 template<typename _Callable, typename... _Args>
111 template<typename _Callable, typename _Obj, typename... _Args>
112 constexpr bool __pmf_expects_stop_token<_Callable, _Obj, _Args...>
113 = __and_<is_member_function_pointer<remove_reference_t<_Callable>>,
114 is_invocable<_Callable, _Obj, stop_token, _Args...>>::value;
142 template<typename _Callable, typename... _Args,
143 typename = enable_if_t<!is_same_v<remove_cvref_t<_Callable>,
146 jthread(_Callable&& __f, _Args&&... __args)
147 : _M_thread{_S_create(_M_stop_source, std::forward<_Callable>(__f),
239 template<typename _Callable, typename... _Args>
241 _S_create(stop_source& __ssrc, _Callable&& __f, _Args&&... __args)
244 if constexpr (__pmf_expects_stop_token<_Callable, _Args...>)
248 if constexpr(is_invocable_v<decay_t<_Callable>, stop_token,
250 return thread{std::forward<_Callable>(__f), __ssrc.get_token(),
254 static_assert(is_invocable_v<decay_t<_Callable>,
258 return thread{std::forward<_Callable>(__f),
264 template<typename _Callable, typename _Obj, typename... _Args>
266 _S_create_pmf(stop_source& __ssrc, _Callable __f, _Obj&& __obj,