BloombergLP::bdlf::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 .

Synopsis

Declared in <bdlf_bind.h>

template<
    class t_RET,
    class t_FUNC,
    class t_BOUND_TUPLE>
class BindWrapper;

Type Aliases

NameDescription
ResultType The return type of this binder object.

Member Functions

NameDescription
BindWrapper [constructor]Constructors
invoke Invoke the bound object using the invocation parameters provided at construction of this bdlf::Bind object, substituting place-holders for their respective values in the specified arguments.
operator() Function call operators
operator* Return a reference to the non-modifiable binder shared by this wrapper.
operator-> Return the address of the non-modifiable binder shared by this wrapper.
operator BloombergLP::bslmf::NestedTraitDeclaration<BindWrapper, HasPointerSemantics> BindWrapper has pointer semantics.
operator BloombergLP::bslmf::NestedTraitDeclaration<BindWrapper, IsBitwiseMoveable> BindWrapper is bitwise moveable.
operator BloombergLP::bslmf::NestedTraitDeclaration<BindWrapper, is_nothrow_move_constructible> BindWrapper is bitwise moveable.