BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE > Class Template Reference

#include <bdlf_bind.h>

Public Types

typedef Traits::ResultType ResultType
 The return type of this binder object.
 

Public Member Functions

 BSLMF_NESTED_TRAIT_DECLARATION (Bind_ImplExplicit, bslma::UsesBslmaAllocator)
 
 Bind_ImplExplicit (typename bslmf::ForwardingType< t_FUNC >::Type func, t_BOUND_TUPLE const &list, bslma::Allocator *allocator)
 
 Bind_ImplExplicit (typename bslmf::ForwardingType< t_FUNC >::Type func, bslmf::MovableRef< t_BOUND_TUPLE > list, bslma::Allocator *allocator)
 
 Bind_ImplExplicit (const Bind_ImplExplicit &other, bslma::Allocator *allocator)
 
 Bind_ImplExplicit (bslmf::MovableRef< Bind_ImplExplicit > other, bslma::Allocator *basicAllocator=0)
 
template<class t_ARG_TUPLE >
ResultType invoke (t_ARG_TUPLE &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 t_RET, class t_FUNC, class t_BOUND_TUPLE>
class bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >

This class implements the storage and functionality required for a binder that invokes an object of type t_FUNC with a list of invocation parameters of type t_BOUND_TUPLE. The return type of the invocation is determined by a combination of type t_RET and t_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 bdlf_bind

Member Typedef Documentation

◆ ResultType

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
typedef Traits::ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::ResultType

Constructor & Destructor Documentation

◆ Bind_ImplExplicit() [1/4]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::Bind_ImplExplicit ( typename bslmf::ForwardingType< t_FUNC >::Type  func,
t_BOUND_TUPLE const &  list,
bslma::Allocator allocator 
)
inline

Construct a Bind_Impl object bound to the specified invocable object func using the invocation parameters specified in list.

◆ Bind_ImplExplicit() [2/4]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::Bind_ImplExplicit ( typename bslmf::ForwardingType< t_FUNC >::Type  func,
bslmf::MovableRef< t_BOUND_TUPLE >  list,
bslma::Allocator allocator 
)
inline

Construct a Bind_Impl object bound to the specified invocable object func using the invocation parameters specified in list.

◆ Bind_ImplExplicit() [3/4]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::Bind_ImplExplicit ( const Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE > &  other,
bslma::Allocator allocator 
)
inline

◆ Bind_ImplExplicit() [4/4]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::Bind_ImplExplicit ( bslmf::MovableRef< Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE > >  other,
bslma::Allocator basicAllocator = 0 
)
inline

Member Function Documentation

◆ BSLMF_NESTED_TRAIT_DECLARATION()

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::BSLMF_NESTED_TRAIT_DECLARATION ( Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >  ,
bslma::UsesBslmaAllocator   
)

◆ invoke()

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
template<class t_ARG_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::invoke ( t_ARG_TUPLE &  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.

◆ operator()() [1/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::operator() ( ) const
inline

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

◆ operator()() [2/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [3/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [4/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [5/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [6/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [7/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [8/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [9/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [10/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [11/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [12/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [13/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [14/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.

◆ operator()() [15/15]

template<class t_RET , class t_FUNC , class t_BOUND_TUPLE >
ResultType bdlf::Bind_ImplExplicit< t_RET, t_FUNC, t_BOUND_TUPLE >::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.


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