LambdaSlot< L, R, A > Class Template Referenceabstract

#include <Pt/Lambda.h>

Adapts a Lambda for use as a slot. More...

Inherits BasicSlot< R, A... >.

Public Member Functions

template<typename T >
 LambdaSlot (T &&lambda, Connectable *context=0)
 Constructs from a lambda and optional lifetime context.
 
virtual const void * callable () const
 Returns a pointer to the contained callable.
 
Slotclone () const
 Clone this object with new.
 
virtual void onConnect (const Connection &connection)
 Notifies of connects.
 
virtual void onDisconnect (const Connection &connection)
 Notifies of disconnects.
 
virtual bool equals (const Slot &) const
 Returns true if two slots are equal in value.
 
virtual const void * callable () const=0
 Returns a pointer to the contained callable.
 

Related Functions

template<class R , class BaseT , class C , typename ARGS >
ConstMethodSlot< R, C, ARGS > slot (C &obj, R(BaseT::*memFunc)(ARGS) const)
 Returns a slot object for the given object/member pair.
 
template<typename R , typename ARGS >
FunctionSlot< R, ARGS > slot (R(*func)(ARGS))
 Returns a slot object for the given free/static function.
 
template<class R , class BaseT , class ClassT , typename ARGS >
MethodSlot< R, ClassT, ARGS > slot (ClassT &obj, R(BaseT::*memFunc)(ARGS))
 Returns a slot object for the given object/member pair.
 
template<typename L , typename SlotT = typename LambdaSlotTraits<L>::Slot>
SlotT slot (L &&lambda)
 Returns a deduced slot object for the given lambda.
 
template<typename L , typename SlotT = typename LambdaSlotTraits<L>::Slot>
SlotT slot (Connectable &context, L &&lambda)
 Returns a deduced slot object for the given lambda.
 
template<typename R , typename... A, typename T , typename L = typename TypeTraits<T>::Value>
LambdaSlot< L, R, A... > slot (T &&lambda)
 Returns a slot object for the given lambda.
 
template<typename R , typename... A, typename T , typename L = typename TypeTraits<T>::Value>
LambdaSlot< L, R, A... > slot (Connectable &context, T &&lambda)
 Returns a slot object for the given lambda.
 

Detailed Description

template<typename L, typename R, typename... A>
class Pt::LambdaSlot< L, R, A >

Lambda slots cannot be compared because captured lambda values have no general equality operation. Retain and close the returned Connection to disconnect a slot, or bind it to a Connectable context.