STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
_Func_impl< _Callable, _Alloc, _Rx, _Types > Class Template Reference
Inheritance diagram for _Func_impl< _Callable, _Alloc, _Rx, _Types >:
_Func_base< _Rx, _Types...>

Public Types

typedef _Func_impl< _Callable, _Alloc, _Rx, _Types...> _Myt
 
typedef _Func_base< _Rx, _Types...> _Mybase
 
typedef _Alloc::template rebind< _Func_impl >::other _Myalty
 
- Public Types inherited from _Func_base< _Rx, _Types...>
typedef _Func_base< _Rx, _Types...> _Myt
 

Public Member Functions

 _Func_impl (const _Func_impl &_Right)
 
 _Func_impl (_Func_impl &_Right)
 
 _Func_impl (_Func_impl &&_Right)
 
 _Func_impl (typename _Callable::_MyTy &&_Val, const _Myalty &_Ax=_Myalty())
 
template<class _Other >
 _Func_impl (_Other &&_Val, const typename enable_if<!is_same< _Myt, typename remove_cv< typename remove_reference< _Other >::type >::type >::value, _Myalty >::type &_Ax=_Myalty())
 
virtual _Mybase_Copy (void *_Where)
 
virtual _Mybase_Move (void *_Where)
 
virtual ~_Func_impl () _NOEXCEPT
 
virtual _Rx _Do_call (_Types &&..._Args)
 
virtual const _XSTD2 type_info_Target_type () const
 
- Public Member Functions inherited from _Func_base< _Rx, _Types...>
virtual _Rx _Do_call (_Types &&...)=0
 
const void_Target (const _XSTD2 type_info &_Info) const
 
virtual ~_Func_base () _NOEXCEPT
 

Private Member Functions

virtual const void_Get () const
 
virtual void _Delete_this (bool _Deallocate)
 

Private Attributes

_Callable _Callee
 
_Myalty _Myal
 

Member Typedef Documentation

template<class _Callable , class _Alloc , class _Rx , class... _Types>
typedef _Alloc::template rebind<_Func_impl>::other _Func_impl< _Callable, _Alloc, _Rx, _Types >::_Myalty
template<class _Callable , class _Alloc , class _Rx , class... _Types>
typedef _Func_base<_Rx, _Types...> _Func_impl< _Callable, _Alloc, _Rx, _Types >::_Mybase
template<class _Callable , class _Alloc , class _Rx , class... _Types>
typedef _Func_impl<_Callable, _Alloc, _Rx, _Types...> _Func_impl< _Callable, _Alloc, _Rx, _Types >::_Myt

Constructor & Destructor Documentation

template<class _Callable , class _Alloc , class _Rx , class... _Types>
_Func_impl< _Callable, _Alloc, _Rx, _Types >::_Func_impl ( const _Func_impl< _Callable, _Alloc, _Rx, _Types > &  _Right)
inline
172  : _Callee(_Right._Callee),
173  _Myal(_Right._Myal)
174  { // copy construct
175  }
_Myalty _Myal
Definition: functional:251
_Callable _Callee
Definition: functional:250
template<class _Callable , class _Alloc , class _Rx , class... _Types>
_Func_impl< _Callable, _Alloc, _Rx, _Types >::_Func_impl ( _Func_impl< _Callable, _Alloc, _Rx, _Types > &  _Right)
inline
178  : _Callee(_Right._Callee),
179  _Myal(_Right._Myal)
180  { // copy construct
181  }
_Myalty _Myal
Definition: functional:251
_Callable _Callee
Definition: functional:250
template<class _Callable , class _Alloc , class _Rx , class... _Types>
_Func_impl< _Callable, _Alloc, _Rx, _Types >::_Func_impl ( _Func_impl< _Callable, _Alloc, _Rx, _Types > &&  _Right)
inline
184  : _Callee(_STD forward<_Callable>(_Right._Callee)),
185  _Myal(_Right._Myal)
186  { // move construct
187  }
_Myalty _Myal
Definition: functional:251
_Callable _Callee
Definition: functional:250
template<class _Callable , class _Alloc , class _Rx , class... _Types>
_Func_impl< _Callable, _Alloc, _Rx, _Types >::_Func_impl ( typename _Callable::_MyTy &&  _Val,
const _Myalty _Ax = _Myalty() 
)
inline
191  : _Callee(_STD forward<typename _Callable::_MyTy>(_Val)), _Myal(_Ax)
192  { // construct
193  }
_Myalty _Myal
Definition: functional:251
_Callable _Callee
Definition: functional:250
_FwdIt const _Ty _Val
Definition: algorithm:1938
template<class _Callable , class _Alloc , class _Rx , class... _Types>
template<class _Other >
_Func_impl< _Callable, _Alloc, _Rx, _Types >::_Func_impl ( _Other &&  _Val,
const typename enable_if<!is_same< _Myt, typename remove_cv< typename remove_reference< _Other >::type >::type >::value, _Myalty >::type &  _Ax = _Myalty() 
)
inline
201  : _Callee(_STD forward<_Other>(_Val)), _Myal(_Ax)
202  { // construct
203  }
_Myalty _Myal
Definition: functional:251
_Callable _Callee
Definition: functional:250
_FwdIt const _Ty _Val
Definition: algorithm:1938
template<class _Callable , class _Alloc , class _Rx , class... _Types>
virtual _Func_impl< _Callable, _Alloc, _Rx, _Types >::~_Func_impl ( )
inlinevirtual
222  { // destroy the object
223  }

Member Function Documentation

template<class _Callable , class _Alloc , class _Rx , class... _Types>
virtual _Mybase* _Func_impl< _Callable, _Alloc, _Rx, _Types >::_Copy ( void _Where)
inlinevirtual

Implements _Func_base< _Rx, _Types...>.

206  { // return clone of *this
207  if (_Where == 0)
208  _Where = _Myal.allocate(1);
209  ::new (_Where) _Myt(*this);
210  return ((_Mybase *)_Where);
211  }
_Func_base< _Rx, _Types...> _Mybase
Definition: functional:168
_Myalty _Myal
Definition: functional:251
_Func_impl< _Callable, _Alloc, _Rx, _Types...> _Myt
Definition: functional:167
return(_PAIR_TYPE(_FwdIt)(_First, _First))
template<class _Callable , class _Alloc , class _Rx , class... _Types>
virtual void _Func_impl< _Callable, _Alloc, _Rx, _Types >::_Delete_this ( bool  _Deallocate)
inlineprivatevirtual

Implements _Func_base< _Rx, _Types...>.

243  { // destroy self
244  _Myalty _Al = _Myal;
245  _Al.destroy(this);
246  if (_Deallocate)
247  _Al.deallocate(this, 1);
248  }
_Myalty _Myal
Definition: functional:251
_Alloc::template rebind< _Func_impl >::other _Myalty
Definition: functional:169
template<class _Callable , class _Alloc , class _Rx , class... _Types>
virtual _Rx _Func_impl< _Callable, _Alloc, _Rx, _Types >::_Do_call ( _Types &&...  _Args)
inlinevirtual
226  { // call wrapped function
227  return (_Callee.template _ApplyX<_Rx>(
228  _STD forward<_Types>(_Args)...));
229  }
_Callable _Callee
Definition: functional:250
template<class _Callable , class _Alloc , class _Rx , class... _Types>
virtual const void* _Func_impl< _Callable, _Alloc, _Rx, _Types >::_Get ( ) const
inlineprivatevirtual

Implements _Func_base< _Rx, _Types...>.

238  { // return address of stored object
239  return (reinterpret_cast<const void*>(&_Callee._Get()));
240  }
_Callable _Callee
Definition: functional:250
template<class _Callable , class _Alloc , class _Rx , class... _Types>
virtual _Mybase* _Func_impl< _Callable, _Alloc, _Rx, _Types >::_Move ( void _Where)
inlinevirtual

Implements _Func_base< _Rx, _Types...>.

214  { // return clone of *this
215  if (_Where == 0)
216  _Where = _Myal.allocate(1);
217  ::new (_Where) _Myt(_STD move(*this));
218  return ((_Mybase *)_Where);
219  }
_Func_base< _Rx, _Types...> _Mybase
Definition: functional:168
_OutIt move(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: xutility:2447
_Myalty _Myal
Definition: functional:251
_Func_impl< _Callable, _Alloc, _Rx, _Types...> _Myt
Definition: functional:167
return(_PAIR_TYPE(_FwdIt)(_First, _First))
template<class _Callable , class _Alloc , class _Rx , class... _Types>
virtual const _XSTD2 type_info& _Func_impl< _Callable, _Alloc, _Rx, _Types >::_Target_type ( ) const
inlinevirtual

Implements _Func_base< _Rx, _Types...>.

232  { // return type information for stored object
233  return (typeid(typename _Callable::_MyTy));
234  }

Member Data Documentation

template<class _Callable , class _Alloc , class _Rx , class... _Types>
_Callable _Func_impl< _Callable, _Alloc, _Rx, _Types >::_Callee
private
template<class _Callable , class _Alloc , class _Rx , class... _Types>
_Myalty _Func_impl< _Callable, _Alloc, _Rx, _Types >::_Myal
private

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