Quick Links:

bal | bbl | bdl | bsl

Public Types | Public Member Functions

bdlf::Bind_ImplExplicit< RET, FUNC, LIST > Class Template Reference

#include <bdlf_bind.h>

List of all members.

Public Types

typedef Traits::ResultType ResultType

Public Member Functions

 BSLMF_NESTED_TRAIT_DECLARATION (Bind_ImplExplicit, bslma::UsesBslmaAllocator)
 Bind_ImplExplicit (typename bslmf::ForwardingType< FUNC >::Type func, LIST const &list, bslma::Allocator *allocator)
 Bind_ImplExplicit (const Bind_ImplExplicit &other, bslma::Allocator *allocator)
template<class ARGS >
ResultType invoke (ARGS &arguments) const
ResultType operator() () const
ResultType operator() (P1 p1) const
ResultType operator() (P1 p1, P2 p2) const
ResultType operator() (P1 p1, P2 p2, P3 p3) const
ResultType operator() (P1 p1, P2 p2, P3 p3, P4 p4) const
ResultType operator() (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) const
ResultType operator() (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) const
ResultType operator() (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7) const
ResultType operator() (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8) const
ResultType operator() (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9) const
ResultType operator() (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10) const
ResultType operator() (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11) const
ResultType operator() (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12) const
ResultType operator() (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13) const
ResultType operator() (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14) const

Detailed Description

template<class RET, class FUNC, class LIST>
class bdlf::Bind_ImplExplicit< RET, FUNC, LIST >

This class implements the storage and functionality required for a binder that invokes an object of type FUNC with a list of invocation parameters of type LIST. The return type of the invocation is determined by a combination of type RET and FUNC. This implementation is preferred to the more generic Bind_Impl above, because it allows to match the signature more closely. However, this implementation can only be used when the type of binder is "explicit" (see below). Note that it does not yet allow to cast the bound arguments to their respective argument type at binding time; the bound arguments are still converted to the signature at invocation time.

A binder is explicit if:

  1. The function signature can be determined completely (return and argument types, e.g., free or member function pointers).
  2. There are no duplicate references to the same placeholder nor any nested Bind objects in the bound arguments.
  3. There are no ellipsis argument in the signature of the function.

Note that this class is an implementation detail of Bind. Do not use this class outside this component.

See Component bdlf_bind


Member Typedef Documentation

template<class RET , class FUNC , class LIST >
typedef Traits::ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::ResultType

Constructor & Destructor Documentation

template<class RET , class FUNC , class LIST >
bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::Bind_ImplExplicit ( typename bslmf::ForwardingType< FUNC >::Type  func,
LIST const &  list,
bslma::Allocator allocator 
) [inline]
Parameters:
allocator Construct a Bind_Impl object bound to the specified invocable object func using the invocation parameters specified in list.
template<class RET , class FUNC , class LIST >
bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::Bind_ImplExplicit ( const Bind_ImplExplicit< RET, FUNC, LIST > &  other,
bslma::Allocator allocator 
) [inline]

Member Function Documentation

template<class RET , class FUNC , class LIST >
bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::BSLMF_NESTED_TRAIT_DECLARATION ( Bind_ImplExplicit< RET, FUNC, LIST >  ,
bslma::UsesBslmaAllocator   
)
template<class RET , class FUNC , class LIST >
template<class ARGS >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke ( ARGS &  arguments  )  const [inline]

< Invoke the bound functor using the invocation parameters provided at construction of this Bind object. Substituting place-holders for their respective values in the specified arguments.

Referenced by bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator()().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() (  )  const [inline]

< Invoke the bound functor using only the invocation parameters provided at construction of this Bind object and return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1  )  const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for argument 1 with the value of the specified argument p1. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1 and 2 with the value of the specified arguments p1, and p2 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1, 2, and 3 with the values of the specified arguments p1, p2 and p3 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3,
P4  p4 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1 - 4 with the values of the specified arguments p1 - p4 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1 - 5 with the values of the specified arguments p1 - p5 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1 - 6 with the values of the specified arguments p1 - p7 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1 - 7 with the values of the specified arguments p1 - p7 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7,
P8  p8 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1 - 8 with the values of the specified arguments p1 - p8 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7,
P8  p8,
P9  p9 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1 - 9 with the values of the specified arguments p1 - p9 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7,
P8  p8,
P9  p9,
P10  p10 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1 - 10 with the values of the specified arguments p1 - p10 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7,
P8  p8,
P9  p9,
P10  p10,
P11  p11 
) const [inline]

< invoke the bound functor using the invocation template provided at construction of this bdlf_bind object, substituting place-holders for arguments 1 - 11 with the values of the specified arguments p1

  • p11 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7,
P8  p8,
P9  p9,
P10  p10,
P11  p11,
P12  p12 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1 - 12 with the values of the specified arguments p1 - p12 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7,
P8  p8,
P9  p9,
P10  p10,
P11  p11,
P12  p12,
P13  p13 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1 - 13 with the values of the specified arguments p1 - p13 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().

template<class RET , class FUNC , class LIST >
ResultType bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::operator() ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7,
P8  p8,
P9  p9,
P10  p10,
P11  p11,
P12  p12,
P13  p13,
P14  p14 
) const [inline]

< Invoke the bound functor using the invocation template provided at construction of this Bind object, substituting place-holders for arguments 1 - 14 with the values of the specified arguments p1 - p14 respectively. Return the result.

References bdlf::Bind_ImplExplicit< RET, FUNC, LIST >::invoke().


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