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, index_sequence< _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,
index_sequence< _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:1349
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,
250  }
_CRTIMP2_PURE void __cdecl _Cnd_do_broadcast_at_thread_exit(void)
bool _Local() const _NOEXCEPT
Definition: functional:414
make_integer_sequence< size_t, _Size > make_index_sequence
Definition: type_traits:1290
Definition: utility:384
static void _Execute(typename _Target::element_type &_Tup, index_sequence< _Idxs...>)
Definition: xthread:237
_Target _MyTarget
Definition: xthread:252
void _Release()
Definition: xthread:194
const void * _Target(const type_info &_Info) const _NOEXCEPT
Definition: functional:408

Member Data Documentation

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

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