Name |
Description |
Bind
|
This bind class select the implementation for the given template arguments. Note that instances of this class should not be created explicitly, instead use the BindUtil factory methods. |
BindUtil
|
This struct provides a namespace for utility functions used to construct Bind and BindWrapper objects. Four families of factory methods are provided: bind, bindR, bindS, and bindSR. All factory methods accept an invocable object, optionally followed by up to fourteen additional arguments. Each argument can be either a literal value, a place‐holder, or another Bind or BindWrapper object. |
BindWrapper
|
This wrapper class provides a binder with shared pointer semantics to a non‐modifiable binder (both operator* and operator‐> accessors) and forward its construction arguments to the underlying binder. Note that instances of this class should not be created explicitly, instead use the BindUtil factory methods. Note also that instances of this class can be invoked directly, in order to meet user expectations that the result of BindUtil::bind be an invocable just as the result of bdlf::BindUtil::bind is; in that case, the invocation parameters are simply forwarded to the shared binder. Note finally that even though this wrapper has pointer semantics for the operator* and operator‐>, it has value semantics for the invocation: invoking a non‐modifiable wrapper will forward the invocation to the non‐modifiable binder shared by that wrapper, even though pointer semantics have it . |
Bind_ArgTuple0
|
This struct provides the creators for a list of zero arguments. |
Bind_ArgTuple1
|
This struct stores a list of one argument. |
Bind_ArgTuple10
|
This struct stores a list of ten arguments. |
Bind_ArgTuple11
|
This struct stores a list of eleven arguments. |
Bind_ArgTuple12
|
This struct stores a list of twelve arguments. |
Bind_ArgTuple13
|
This struct stores a list of thirteen arguments. |
Bind_ArgTuple14
|
This struct stores a list of fourteen arguments. |
Bind_ArgTuple2
|
This struct stores a list of two arguments. |
Bind_ArgTuple3
|
This struct stores a list of three arguments. |
Bind_ArgTuple4
|
This struct stores a list of four arguments. |
Bind_ArgTuple5
|
This struct stores a list of five arguments. |
Bind_ArgTuple6
|
This struct stores a list of six arguments. |
Bind_ArgTuple7
|
This struct stores a list of seven arguments. |
Bind_ArgTuple8
|
This struct stores a list of eight arguments. |
Bind_ArgTuple9
|
This struct stores a list of nine arguments. |
Bind_ArgTupleValue
|
This local class provides storage for a value of the specified TYPE suitable for storing an argument value in one of the Bind_ArgTuple[0‐14] local classes. TYPE must already be a bslmf::ForwardingType, meaning no extra copies will be made (unless the type is a fundamental type, which is meant to be copied for efficiency). |
Bind_BoundTuple0
|
This struct provides the creators for a list of zero arguments. |
Bind_BoundTuple1
|
This struct stores a list of one argument. It does not use the const‐forwarding type of its argument, unlike Bind_ArgTuple1 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple10
|
This struct stores a list of ten arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple10 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple11
|
This struct stores a list of eleven arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple11 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple12
|
This struct stores a list of twelve arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple12 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple13
|
This struct stores a list of thirteen arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple13 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple14
|
This struct stores a list of fourteen arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple14 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple2
|
This struct stores a list of two arguments. It does not use the const‐forwarding type of its argument, unlike Bind_ArgTuple2 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple3
|
This struct stores a list of three arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple3 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple4
|
This struct stores a list of four arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple4 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple5
|
This struct stores a list of five arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple5 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple6
|
This struct stores a list of six arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple6 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple7
|
This struct stores a list of seven arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple7 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple8
|
This struct stores a list of eight arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple8 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTuple9
|
This struct stores a list of nine arguments. It does not use the const‐forwarding type of its arguments, unlike Bind_ArgTuple9 which applies that optimization to avoid unnecessary copying. |
Bind_BoundTupleValue
|
This local class provides storage for a value of the specified TYPE suitable for storing an argument value in one of the Bind_BoundTuple* local classes. This general template definition ensures that the allocator passed to the creators is passed through to the value if it uses an allocator, using the bslalg::ConstructorProxy mechanism. |
Bind_CalcParameterMask
|
This meta‐function is used to calculate a mask that indicates which parameters in t_BOUND_TUPLE are place‐holders and which ones are literal values. It is used by Bind_ImplExplicit. |
Bind_Evaluator
|
Component‐private utility for evaluating a bound function call. |
Bind_FuncTraits
|
This struct provides various traits of the functor type t_FUNC documented below. If t_RET is bslmf::Nil, then the return type is inferred by using either bslmf::FunctionPointerTraits, bslmf::MemberFunctionPointerTraits, or typename t_FUNC::result_type as appropriate. ` // ENUMERATIONS enum { k_IS_EXPLICIT // An invocable object is explicit if ... // (see 'Bind_ImplExplicit') |
Bind_FuncTraitsHasNoEllipsis
|
Determines whether a function type has the ellipsis as an argument. This is needed for making the binder non‐explicit in case of a function pointer, reference, or member function pointer. By default, a function does not take an ellipsis unless specialized below. This traits class is used in the Bind_FuncTraitsImp below. Note that this meta function is not supported on sun studio 8. |
Bind_FuncTraitsImp
|
This struct provides a mechanism for inferring various traits of the function object type t_FUNC. The return type is given by t_RET unless it is bslmf::Nil in which case it is inferred from t_FUNC. The last three parameters IS_FUNCTION, IS_FUNCTION_POINTER and IS_MEMBER_FUNCTION_POINTER specify whether t_FUNC is a free function type (either a reference‐to‐function or plain function type), a pointer to function type, or a pointer to member function type, respectively. |
Bind_FuncTraitsImp_OneResultTypeOrAnother
|
Define the type variable type to be t_FUNC::result_type if that exists and t_FUNC::ResultType otherwise. Additionally, for C++11 and above, if t_FUNC has an operator() member (such as lambda functions), define type to be the return type of that operator. |
Bind_Invoker
|
Component‐private invoker for bound function calls. |
Bind_MapParameter
|
This meta‐function is used to select the type at t_OFFSET positions of the t_INDEX position in an argument list type t_FUNC_ARGS, which is of type bslmf::TypeList denoting the arguments of t_FUNC. Note that this class is used by Bind_ImplExplicit. |
Bind_MemFnObjectWrapper
|
This local class is used to wrap an object used to invoke a member functions bound to a Bind binder. In explicit binding, the argument types of operator() are determined during Bind instantiation. If a member function is bound to the binder, and the object to invoke the member function on is passed as an invocation argument (instead of a bound argument), the exact type of the object ‐ whether it is a pointer or reference ‐ cannot be determined based on the method signature. This wrapper serve as an intermediate type to wrap around the object pointer or reference. This class is declared to have pointer semantics, such that MemFn will properly dereference the object to invoke the member function. |
Bind_PlaceHolderIndex
|
This template, passed the type of one of the bound arguments to a function object, yields: * if the specified t_BOUND_TYPE is a place holder, the index of the place holder object * zero otherwise |
Bind_PlaceHolderMask
|
This template, passed the type of one of the bound arguments to a function object, yields: * If the specified t_BOUND_TYPE is a place holder, a mask with the bit at the index of the place holder set. * If the specified t_BOUND_TYPE is a Bind or BindWrapper, a mask with bit 24 set. * Zero otherwise. |
MemFn
|
This class encapsulates a member function pointer having the parameterized PROTOTYPE, such that the member function pointer can be invoked in syntactically the same manner as a free function pointer. When invoking a member function through this wrapper, the first argument must be a pointer or reference to the instance on which to invoke the member function pointer. Zero to fourteen additional arguments may be specified depending on PROTOTYPE. |
MemFnInstance
|
This class encapsulates a member function pointer having the parameterized PROTOTYPE and a value of the parameterized INSTANCE type, which can be either be the type of object referred to by the PROTOTYPE, or a pointer to one, such that the member function pointer can be invoked on the wrapped instance in syntactically the same manner as a free function pointer. Zero to fourteen additional arguments may be specified depending on the PROTOTYPE. Note that whether INSTANCE is a pointer or an object is determined by whether it has pointer semantics or not (as determined by the bslmf::HasPointerSemantics type trait). Also note that if INSTANCE is an object that does not have pointer semantics, PROTOTYPE must be const‐qualified. |
MemFnUtil
|
The methods provided in this utility are used for constructing MemFn and MemFnInstance objects from function pointers. |
MemFn_Dereference
|
This utility is used to convert user supplied values to references to OBJTYPE for object references that are directly convertible to OBJTYPE, the reference is returned directly. For pointers and objects that are not directly convertible (e.g., "smart pointers to OBJTYPE"), the result of *OBJECT is returned, where OBJECT is the pointer or object reference. |
NoOp
|
This functor class provides a function‐call operator that accepts any number of arguments of any type, does nothing (leaving the arguments unmodified), and returns void. |
Overloaded
|
Overloaded is a structure that holds a series of objects that have an operator(), and provides the ability to call one of them determined by the parameters that are passed to the operator.
|
Overloaded_ConstMemberFunctionPointer
|
The class Overloaded_ConstMemberFunctionPointer wraps a member function pointer. It is implicitly constructible from the pointer, and provides an operator() that takes an object of the appropriate type and other arguments, and forwards them on to the underlying function. |
Overloaded_ConstNoexceptMemberFunctionPointer
|
The class Overloaded_ConstNoexceptMemberFunctionPointer wraps a member function pointer. It is implicitly constructible from the pointer, and provides an operator() that takes an object of the appropriate type and other arguments, and forwards them on to the underlying function. |
Overloaded_FunctionPointer
|
Overloaded_FunctionPointer wraps a function pointer. It is implicitly constructible from the pointer, and provides an operator() method that calls through to the underlying function. |
Overloaded_MemberFunctionPointer
|
The class Overloaded_MemberFunctionPointer wraps a member function pointer. It is implicitly constructible from the pointer, and provides an operator() that takes an object of the appropriate type and other arguments, and forwards them on to the underlying function. |
Overloaded_NoexceptFunctionPointer
|
Overloaded_NoexceptFunctionPointer wraps a function pointer. It is implicitly constructible from the pointer, and provides an operator() method that calls through to the underlying function. |
Overloaded_NoexceptMemberFunctionPointer
|
The class Overloaded_NoexceptMemberFunctionPointer wraps a member function pointer. It is implicitly constructible from the pointer, and provides an operator() that takes an object of the appropriate type and other arguments, and forwards them on to the underlying function. |
Overloaded_Wrapper
|
Metafunction that selects the appropriate wrapper type for a callable. |
PlaceHolder
|
Placeholder type for the bdlf::Bind argument‐binding facility. |