8#ifndef INCLUDED_BSLSTP_EXFUNCTIONAL
9#define INCLUDED_BSLSTP_EXFUNCTIONAL
98#ifdef BDE_OPENSOURCE_PUBLICATION
99#error "bslstp_exfunctional is not for publication"
115#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
118# include <functional>
131template <
class OPERATION1,
class OPERATION2>
168template <
class OPERATION1,
class OPERATION2,
class OPERATION3>
185 const OPERATION2& fn2,
186 const OPERATION3& fn3)
219 const typename PAIR::first_type&
operator()(
const PAIR& x)
const
240 const typename PAIR::second_type&
operator()(
const PAIR& x)
const
251template <
class OPERATION1,
class OPERATION2>
253unary_compose<OPERATION1, OPERATION2>
254compose1(
const OPERATION1& fn1,
const OPERATION2& fn2)
263template <
class OPERATION1,
class OPERATION2,
class OPERATION3>
265binary_compose<OPERATION1, OPERATION2, OPERATION3>
267 const OPERATION2& fn2,
268 const OPERATION3& fn3)
293 return 0 == std::strcmp(a, b);
304template <
class HASH_KEY>
Definition bslstp_exfunctional.h:170
OPERATION2 d_fn2
Definition bslstp_exfunctional.h:179
OPERATION3 d_fn3
Definition bslstp_exfunctional.h:180
result_type operator()(argument_type &x) const
Definition bslstp_exfunctional.h:197
result_type operator()(const argument_type &x) const
Definition bslstp_exfunctional.h:192
OPERATION1::result_type result_type
Definition bslstp_exfunctional.h:174
OPERATION1 d_fn1
Definition bslstp_exfunctional.h:178
binary_compose(const OPERATION1 &fn1, const OPERATION2 &fn2, const OPERATION3 &fn3)
Definition bslstp_exfunctional.h:184
OPERATION2::argument_type argument_type
Definition bslstp_exfunctional.h:173
Definition bslstp_exfunctional.h:133
OPERATION2 d_fn2
Definition bslstp_exfunctional.h:142
OPERATION1 d_fn1
Definition bslstp_exfunctional.h:141
result_type operator()(const argument_type &x) const
Definition bslstp_exfunctional.h:150
OPERATION2::argument_type argument_type
Definition bslstp_exfunctional.h:136
result_type operator()(argument_type &x) const
Definition bslstp_exfunctional.h:154
OPERATION1::result_type result_type
Definition bslstp_exfunctional.h:137
unary_compose(const OPERATION1 &x, const OPERATION2 &y)
Definition bslstp_exfunctional.h:146
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
Definition bdlb_printmethods.h:283
unary_compose< OPERATION1, OPERATION2 > compose1(const OPERATION1 &fn1, const OPERATION2 &fn2)
Definition bslstp_exfunctional.h:254
binary_compose< OPERATION1, OPERATION2, OPERATION3 > compose2(const OPERATION1 &fn1, const OPERATION2 &fn2, const OPERATION3 &fn3)
Definition bslstp_exfunctional.h:266
Definition bslstp_exfunctional.h:323
StringComparator Type
Definition bslstp_exfunctional.h:317
Definition bslstp_exfunctional.h:306
bsl::equal_to< HASH_KEY > Type
Definition bslstp_exfunctional.h:308
Definition bslstp_exfunctional.h:280
bool operator()(const char *a, const char *b) const
Definition bslstp_exfunctional.h:290
BSLMF_NESTED_TRAIT_DECLARATION(StringComparator, bsl::is_trivially_copyable)
Definition bslstl_equalto.h:311
Definition bslmf_istriviallycopyable.h:329
public type names
Definition bslstp_exfunctional.h:211
const PAIR::first_type & operator()(const PAIR &x) const
Definition bslstp_exfunctional.h:219
BSLMF_NESTED_TRAIT_DECLARATION(select1st, bsl::is_trivially_copyable)
PAIR argument_type
Definition bslstp_exfunctional.h:212
PAIR::first_type result_type
Definition bslstp_exfunctional.h:213
public type names
Definition bslstp_exfunctional.h:232
const PAIR::second_type & operator()(const PAIR &x) const
Definition bslstp_exfunctional.h:240
PAIR argument_type
Definition bslstp_exfunctional.h:233
PAIR::second_type result_type
Definition bslstp_exfunctional.h:234
BSLMF_NESTED_TRAIT_DECLARATION(select2nd, bsl::is_trivially_copyable)
An identity function.
Definition bslstp_exfunctional.h:331
TYPE argument_type
Definition bslstp_exfunctional.h:334
TYPE result_type
Definition bslstp_exfunctional.h:335
BSLMF_NESTED_TRAIT_DECLARATION(Identity, bsl::is_trivially_copyable)
const TYPE & operator()(const TYPE &x) const
Return a const reference to the specified x.
Definition bslstp_exfunctional.h:352