STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Static Private Member Functions | Private Attributes | List of all members
_LaunchPad< _Target > Class Template Referencefinal
Inheritance diagram for _LaunchPad< _Target >:
_Pad

Public Member Functions

template<class _Other >
 _LaunchPad (_Other &&_Tgt)
 
virtual void _Go ()
 
- Public Member Functions inherited from _Pad
 _Pad ()
 
 ~_Pad () _NOEXCEPT
 
void _Launch (_Thrd_t *_Thr)
 
void _Release ()
 

Static Private Member Functions

template<size_t... _Idxs>
static void _Execute (typename _Target::element_type &_Tup, integer_sequence< size_t, _Idxs...>)
 
static void _Run (_LaunchPad *_Ln) _NOEXCEPT
 

Private Attributes

_Target _MyTarget
 

Constructor & Destructor Documentation

template<class _Target>
template<class _Other >
_LaunchPad< _Target >::_LaunchPad ( _Other &&  _Tgt)
inline
226  : _MyTarget(_STD forward<_Other>(_Tgt))
227  { // construct from target
228  }
_Target _MyTarget
Definition: xthread:252

Member Function Documentation

template<class _Target>
template<size_t... _Idxs>
static void _LaunchPad< _Target >::_Execute ( typename _Target::element_type &  _Tup,
integer_sequence< size_t, _Idxs...>   
)
inlinestaticprivate
239  { // invoke function object packed in tuple
240  _STD invoke(_STD move(_STD get<_Idxs>(_Tup))...);
241  }
constexpr remove_reference< _Ty >::type && move(_Ty &&_Arg) _NOEXCEPT
Definition: type_traits:1290
auto invoke(_Callable &&_Obj, _Types &&..._Args) -> decltype(_Invoker< _Callable, _Types...>::_Call(_STD forward< _Callable >(_Obj), _STD forward< _Types >(_Args)...))
Definition: type_traits:1439
template<class _Target>
virtual void _LaunchPad< _Target >::_Go ( )
inlinevirtual

Implements _Pad.

231  { // run the thread function object
232  _Run(this);
233  }
static void _Run(_LaunchPad *_Ln) _NOEXCEPT
Definition: xthread:243
template<class _Target>
static void _LaunchPad< _Target >::_Run ( _LaunchPad< _Target > *  _Ln)
inlinestaticprivate
244  { // construct local unique_ptr and call function object within
245  _Target _Local(_STD forward<_Target>(_Ln->_MyTarget));
246  _Ln->_Release();
247  _Execute(*_Local,
248  make_integer_sequence<size_t,
250  }
bool _Local() const _NOEXCEPT
Definition: functional:419
Definition: utility:367
_Target _MyTarget
Definition: xthread:252
const void * _Target(const _XSTD2 type_info &_Info) const _NOEXCEPT
Definition: functional:413
void _Release()
Definition: xthread:193
static void _Execute(typename _Target::element_type &_Tup, integer_sequence< size_t, _Idxs...>)
Definition: xthread:237
__make_integer_seq< integer_sequence, _Ty, _Size > make_integer_sequence
Definition: type_traits:1245

Member Data Documentation

template<class _Target>
_Target _LaunchPad< _Target >::_MyTarget
private

The documentation for this class was generated from the following file: